katello 4.7.0.rc1 → 4.7.0.rc2

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/app/lib/actions/candlepin/abstract_async_task.rb +7 -3
  3. data/app/lib/actions/candlepin/owner/{upstream_export.rb → retrieve_upstream_export.rb} +3 -3
  4. data/app/lib/actions/candlepin/owner/start_upstream_export.rb +24 -0
  5. data/app/lib/actions/candlepin/upstream_abstract_async_task.rb +30 -0
  6. data/app/lib/actions/katello/organization/manifest_refresh.rb +12 -7
  7. data/app/lib/actions/middleware/propagate_candlepin_errors.rb +6 -1
  8. data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +1 -0
  9. data/app/lib/actions/pulp3/orphan_cleanup/delete_orphan_alternate_content_sources.rb +16 -0
  10. data/app/lib/katello/errors.rb +1 -0
  11. data/app/lib/katello/resources/candlepin/upstream_consumer.rb +1 -1
  12. data/app/lib/katello/resources/candlepin/upstream_job.rb +28 -0
  13. data/app/models/katello/content_view_erratum_filter.rb +5 -4
  14. data/app/models/katello/glue/provider.rb +28 -18
  15. data/app/services/katello/pulp3/docker_manifest.rb +2 -1
  16. data/app/services/katello/pulp3/docker_manifest_list.rb +2 -1
  17. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +21 -0
  18. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +2 -2
  19. data/lib/katello/repository_types/docker.rb +2 -1
  20. data/lib/katello/version.rb +1 -1
  21. data/locale/action_names.rb +68 -68
  22. data/locale/bn/katello.po +38 -35
  23. data/locale/cs/katello.po +38 -35
  24. data/locale/de/katello.po +130 -126
  25. data/locale/en/katello.po +38 -35
  26. data/locale/es/katello.po +95 -88
  27. data/locale/fr/katello.po +95 -88
  28. data/locale/gu/katello.po +44 -41
  29. data/locale/hi/katello.po +43 -40
  30. data/locale/it/katello.po +61 -56
  31. data/locale/ja/katello.po +615 -614
  32. data/locale/ka/katello.po +8821 -0
  33. data/locale/katello.pot +353 -339
  34. data/locale/kn/katello.po +41 -38
  35. data/locale/ko/katello.po +62 -59
  36. data/locale/mr/katello.po +41 -38
  37. data/locale/or/katello.po +43 -40
  38. data/locale/pa/katello.po +41 -38
  39. data/locale/pt/katello.po +40 -36
  40. data/locale/pt_BR/katello.po +91 -84
  41. data/locale/ru/katello.po +68 -65
  42. data/locale/ta/katello.po +38 -35
  43. data/locale/te/katello.po +41 -38
  44. data/locale/zanata.xml +4 -2
  45. data/locale/zh_CN/katello.po +99 -96
  46. data/locale/zh_TW/katello.po +62 -59
  47. data/webpack/components/Table/EmptyStateMessage.js +3 -3
  48. data/webpack/containers/Application/overrides.scss +13 -1
  49. data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +8 -3
  50. data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +8 -8
  51. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +0 -6
  52. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +0 -6
  53. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +67 -9
  54. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +4 -4
  55. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +6 -6
  56. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +6 -6
  57. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +6 -8
  58. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +31 -0
  59. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +5 -7
  60. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareTable.js +9 -2
  61. metadata +12 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 366dabf3ddc6fab48cf353603f9ac49fb9ed3c87ac47e965eba48a63b4ce4847
4
- data.tar.gz: a8307026cb41c314df92d6a89590ee38ba7547e215bbed82dd454e5fc135c68f
3
+ metadata.gz: 681115c601daa1728c23ca2aa5f2995c3997f8aebd24d48f465119a9daea07fe
4
+ data.tar.gz: f83059ee941668d27e4ada30accf702b86f37fd20e475ffa0580fdea0fa01261
5
5
  SHA512:
6
- metadata.gz: 0b167060d9d9795261b6262d47fbcca7fae09a587b170e173a7cbb9ceb382371c1b8414ef7b361ab51e96088d1485f2be2d35758f34cb8574257f81951d082a5
7
- data.tar.gz: 06b29d35d28b57eb6484a34622b9fec4b4395dcb66f938440051bb9cec8323e1f808e1216e0500183f1f6f7e894abd882a30dcd0468207df7a08126bac3e3281
6
+ metadata.gz: 98206f5b247a2e33f31fe908d0294ac239334106118493c4c6f4749461960975043e560724e788d5ae922d334f0ee151deaa7ded09eb9df79ef4931e52509278
7
+ data.tar.gz: 5f1528fa18239ddc42e4880b9877a81a75149a8e2c1a37242284e29ba8f6c808752d76c4afceea5b2b988f62df559ec5f3535e125e6a7465c11174ac69c71a09
@@ -14,12 +14,12 @@ module Actions
14
14
  case state
15
15
  when :running
16
16
  if self.external_task.nil?
17
- _("initiating Candlepin task")
17
+ _("initiating %s task") % candlepin
18
18
  else
19
- _("checking Candlepin task status")
19
+ _("checking %s task status") % candlepin
20
20
  end
21
21
  when :suspended
22
- _("waiting for Candlepin to finish the task")
22
+ _("waiting for %s to finish the task") % candlepin
23
23
  else
24
24
  super
25
25
  end
@@ -30,6 +30,10 @@ module Actions
30
30
  !::Katello::Resources::Candlepin::Job.not_finished?(external_task)
31
31
  end
32
32
 
33
+ def candlepin
34
+ _("Candlepin")
35
+ end
36
+
33
37
  private
34
38
 
35
39
  def job_poll_params
@@ -1,16 +1,16 @@
1
1
  module Actions
2
2
  module Candlepin
3
3
  module Owner
4
- class UpstreamExport < Candlepin::Abstract
4
+ class RetrieveUpstreamExport < Candlepin::Abstract
5
5
  input_format do
6
6
  param :organization_id
7
7
  param :path
8
- param :upstream
8
+ param :export_id
9
9
  end
10
10
 
11
11
  def run
12
12
  organization = ::Organization.find(input[:organization_id])
13
- output[:response] = organization.redhat_provider.owner_upstream_export(input[:upstream], input[:path], {})
13
+ output[:response] = organization.redhat_provider.retrieve_owner_upstream_export(input[:upstream], input[:path], input[:export_id])
14
14
  end
15
15
  end
16
16
  end
@@ -0,0 +1,24 @@
1
+ module Actions
2
+ module Candlepin
3
+ module Owner
4
+ class StartUpstreamExport < Candlepin::UpstreamAbstractAsyncTask
5
+ input_format do
6
+ param :organization_id
7
+ param :upstream
8
+ end
9
+
10
+ def invoke_external_task
11
+ organization = ::Organization.find(input[:organization_id])
12
+ output[:response] = organization.redhat_provider.start_owner_upstream_export(input[:upstream])
13
+ end
14
+
15
+ def humanized_output
16
+ result_data = output[:task]&.[]('resultData')
17
+ return '' if result_data&.[]('status').blank?
18
+ "Upstream Candlepin job status: #{result_data['status']}\n
19
+ Message: #{result_data['statusMessage']}"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,30 @@
1
+ module Actions
2
+ module Candlepin
3
+ class UpstreamAbstractAsyncTask < AbstractAsyncTask
4
+ input_format do
5
+ param :upstream
6
+ end
7
+
8
+ def done?
9
+ check_for_errors!(external_task)
10
+ !::Katello::Resources::Candlepin::UpstreamJob.not_finished?(external_task)
11
+ end
12
+
13
+ def candlepin
14
+ _("Upstream Candlepin")
15
+ end
16
+
17
+ private
18
+
19
+ def poll_external_task
20
+ ::Katello::Resources::Candlepin::UpstreamJob.get(external_task[:id], input[:upstream])
21
+ end
22
+
23
+ def check_for_errors!(task)
24
+ if task[:state] == 'FAILED'
25
+ fail ::Katello::Errors::UpstreamCandlepinError, task[:resultData]
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -14,18 +14,28 @@ module Actions
14
14
  upstream = details['upstreamConsumer'].blank? ? {} : details['upstreamConsumer']
15
15
 
16
16
  sequence do
17
+ plan_self(
18
+ :organization_id => organization.id,
19
+ :organization_name => organization.name
20
+ )
17
21
  upstream_update = plan_action(Candlepin::Owner::UpstreamUpdate,
18
22
  :organization_id => organization.id,
19
23
  :upstream => upstream)
20
- export_action = plan_action(Candlepin::Owner::UpstreamExport,
24
+ export_action = plan_action(Candlepin::Owner::StartUpstreamExport,
21
25
  :organization_id => organization.id,
22
26
  :upstream => upstream,
23
27
  :path => path,
24
28
  :dependency => upstream_update.output)
29
+ retrieved_export = plan_action(Candlepin::Owner::RetrieveUpstreamExport,
30
+ :export_id => export_action.output[:task]['resultData']['exportId'],
31
+ :organization_id => organization.id,
32
+ :upstream => upstream,
33
+ :path => path,
34
+ :dependency => export_action.output)
25
35
  owner_import = plan_action(Candlepin::Owner::Import,
26
36
  :label => organization.label,
27
37
  :path => path,
28
- :dependency => export_action.output)
38
+ :dependency => retrieved_export.output)
29
39
  import_products = plan_action(Candlepin::Owner::ImportProducts,
30
40
  :organization_id => organization.id,
31
41
  :dependency => owner_import.output)
@@ -34,11 +44,6 @@ module Actions
34
44
  if manifest_update
35
45
  plan_refresh_repos(import_products, organization)
36
46
  end
37
-
38
- plan_self(
39
- :organization_id => organization.id,
40
- :organization_name => organization.name
41
- )
42
47
  end
43
48
  end
44
49
 
@@ -18,7 +18,12 @@ module Actions
18
18
  def propagate_candlepin_errors
19
19
  yield
20
20
  rescue RestClient::ExceptionWithResponse => e
21
- raise(::Katello::Errors::CandlepinError.from_exception(e) || e)
21
+ error_class = if e.response.request.url.include?('/candlepin')
22
+ ::Katello::Errors::CandlepinError
23
+ else
24
+ ::Katello::Errors::UpstreamCandlepinError
25
+ end
26
+ raise(error_class.from_exception(e) || e)
22
27
  end
23
28
  end
24
29
  end
@@ -11,6 +11,7 @@ module Actions
11
11
  if proxy.pulp_mirror?
12
12
  plan_action(Actions::Pulp3::OrphanCleanup::RemoveUnneededRepos, proxy)
13
13
  plan_action(Actions::Pulp3::OrphanCleanup::DeleteOrphanDistributions, proxy)
14
+ plan_action(Actions::Pulp3::OrphanCleanup::DeleteOrphanAlternateContentSources, proxy)
14
15
  plan_action(Actions::Pulp3::OrphanCleanup::DeleteOrphanRemotes, proxy)
15
16
  end
16
17
  end
@@ -0,0 +1,16 @@
1
+ module Actions
2
+ module Pulp3
3
+ module OrphanCleanup
4
+ class DeleteOrphanAlternateContentSources < Pulp3::AbstractAsyncTask
5
+ def plan(smart_proxy)
6
+ plan_self(:smart_proxy_id => smart_proxy.id)
7
+ end
8
+
9
+ def invoke_external_task
10
+ smart_proxy_service = ::Katello::Pulp3::SmartProxyRepository.instance_for_type(smart_proxy)
11
+ smart_proxy_service.delete_orphan_alternate_content_sources
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -128,6 +128,7 @@ module Katello
128
128
  end
129
129
  end
130
130
 
131
+ class UpstreamCandlepinError < CandlepinError; end
131
132
  class UpstreamConsumerGone < StandardError
132
133
  def message
133
134
  _("The manifest doesn't exist on console.redhat.com. " \
@@ -40,7 +40,7 @@ module Katello
40
40
  raise ::Katello::Errors::UpstreamEntitlementGone
41
41
  end
42
42
 
43
- def export(url, client_cert, client_key, ca_file)
43
+ def get_export(url, client_cert, client_key, ca_file)
44
44
  logger.debug "Sending GET request to upstream Candlepin: #{url}"
45
45
  return resource(url, client_cert, client_key, ca_file).get
46
46
  rescue RestClient::Exception => e
@@ -0,0 +1,28 @@
1
+ module Katello
2
+ module Resources
3
+ module Candlepin
4
+ class UpstreamJob < UpstreamCandlepinResource
5
+ class << self
6
+ NOT_FINISHED_STATES = %w(CREATED WAITING PENDING RUNNING).freeze unless defined? NOT_FINISHED_STATES
7
+ API_URL = 'https://subscription.rhsm.redhat.com/subscription'.freeze
8
+
9
+ def not_finished?(job)
10
+ NOT_FINISHED_STATES.include?(job[:state])
11
+ end
12
+
13
+ def get(id, upstream)
14
+ url = API_URL
15
+ response = Resources::Candlepin::UpstreamConsumer.get_export("#{url}#{path(id)}", upstream['idCert']['cert'],
16
+ upstream['idCert']['key'], nil)
17
+ job = JSON.parse(response)
18
+ job.with_indifferent_access
19
+ end
20
+
21
+ def path(id = nil)
22
+ "/jobs/#{id}"
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -34,10 +34,10 @@ module Katello
34
34
  # additional_included_errata and inclusion filters don't work together (since it only applies when excluding)
35
35
  if self.inclusion?
36
36
  errata_pulp_ids = errata_package_pulp_ids_from_errata_ids(repo, errata_ids, [])
37
- errata_pulp_ids += errata_module_stream_pulp_ids_from_errata_ids(errata_ids, [])
37
+ errata_pulp_ids += errata_module_stream_pulp_ids_from_errata_ids(repo, errata_ids, [])
38
38
  else
39
39
  errata_pulp_ids = errata_package_pulp_ids_from_errata_ids(repo, errata_ids, additional_included_errata)
40
- errata_pulp_ids += errata_module_stream_pulp_ids_from_errata_ids(errata_ids, additional_included_errata)
40
+ errata_pulp_ids += errata_module_stream_pulp_ids_from_errata_ids(repo, errata_ids, additional_included_errata)
41
41
  end
42
42
  else
43
43
  clauses = []
@@ -74,10 +74,11 @@ module Katello
74
74
  rpms_by_filename(repo, package_filenames).pluck(:pulp_id)
75
75
  end
76
76
 
77
- def errata_module_stream_pulp_ids_from_errata_ids(errata_ids, additional_included_errata)
77
+ def errata_module_stream_pulp_ids_from_errata_ids(repo, errata_ids, additional_included_errata)
78
78
  module_streams = Katello::Erratum.where(:errata_id => errata_ids).map(&:module_streams).compact.flatten -
79
79
  Katello::Erratum.where(:errata_id => additional_included_errata.pluck(:errata_id)).map(&:module_streams).compact.flatten
80
- module_streams.pluck(:pulp_id)
80
+ ModuleStream.joins(:repository_module_streams).
81
+ where(:id => module_streams.pluck(:id), "#{RepositoryModuleStream.table_name}.repository_id" => repo.id).pluck(:pulp_id)
81
82
  end
82
83
 
83
84
  def errata_package_pulp_ids_from_errata_ids(repo, errata_ids, additional_included_errata)
@@ -66,11 +66,6 @@ module Katello
66
66
  # Default to Red Hat
67
67
  url = upstream['apiUrl'] || API_URL
68
68
 
69
- # TODO: wait until ca_path is supported
70
- # https://github.com/L2G/rest-client-fork/pull/8
71
- #ca_file = '/etc/candlepin/certs/upstream/subscription.rhn.stage.redhat.com.crt'
72
- ca_file = nil
73
-
74
69
  params = {}
75
70
  params[:capabilities] = Resources::Candlepin::CandlepinPing.ping['managerCapabilities'].inject([]) do |result, element|
76
71
  result << {'name' => element}
@@ -80,26 +75,25 @@ module Katello
80
75
  upstream['idCert']['key'], ca_file, params)
81
76
  end
82
77
 
83
- def owner_upstream_export(upstream, zip_file_path, _options)
84
- if !upstream['idCert'] || !upstream['idCert']['cert'] || !upstream['idCert']['key']
85
- Rails.logger.error "Upstream identity certificate not available"
86
- fail _("Upstream identity certificate not available")
87
- end
88
-
89
- # Default to Red Hat
78
+ def start_owner_upstream_export(upstream)
79
+ validate_upstream_identity_cert!(upstream)
90
80
  url = upstream['apiUrl'] || API_URL
91
81
 
92
- # TODO: wait until ca_path is supported
93
- # https://github.com/L2G/rest-client-fork/pull/8
94
- #ca_file = '/etc/candlepin/certs/upstream/subscription.rhn.stage.redhat.com.crt'
95
- ca_file = nil
82
+ response = Resources::Candlepin::UpstreamConsumer.get_export("#{url}#{upstream['uuid']}/export/async", upstream['idCert']['cert'],
83
+ upstream['idCert']['key'], ca_file)
84
+ JSON.parse(response)
85
+ end
96
86
 
97
- data = Resources::Candlepin::UpstreamConsumer.export("#{url}#{upstream['uuid']}/export", upstream['idCert']['cert'],
87
+ def retrieve_owner_upstream_export(upstream, zip_file_path, export_id)
88
+ validate_upstream_identity_cert!(upstream)
89
+ url = upstream['apiUrl'] || API_URL
90
+
91
+ data = Resources::Candlepin::UpstreamConsumer.get_export("#{url}#{upstream['uuid']}/export/#{export_id}", upstream['idCert']['cert'],
98
92
  upstream['idCert']['key'], ca_file)
99
93
 
100
94
  File.write(zip_file_path, data, mode: 'wb')
101
95
 
102
- return true
96
+ true
103
97
  end
104
98
 
105
99
  def del_owner_import
@@ -168,6 +162,22 @@ module Katello
168
162
  redhat_provider? ? candlepin_ping['rulesVersion'] : ''
169
163
  end
170
164
 
165
+ private
166
+
167
+ def validate_upstream_identity_cert!(upstream)
168
+ if !upstream['idCert'] || !upstream['idCert']['cert'] || !upstream['idCert']['key']
169
+ Rails.logger.error "Upstream identity certificate not available"
170
+ fail _("Upstream identity certificate not available")
171
+ end
172
+ end
173
+
174
+ def ca_file
175
+ # TODO: wait until ca_path is supported
176
+ # https://github.com/L2G/rest-client-fork/pull/8
177
+ # ca_file = '/etc/candlepin/certs/upstream/subscription.rhn.stage.redhat.com.crt'
178
+ nil
179
+ end
180
+
171
181
  protected
172
182
 
173
183
  def candlepin_ping
@@ -16,7 +16,8 @@ module Katello
16
16
 
17
17
  def self.content_unit_list(page_opts)
18
18
  page_opts[:media_type] = ['application/vnd.docker.distribution.manifest.v1+json',
19
- 'application/vnd.docker.distribution.manifest.v2+json']
19
+ 'application/vnd.docker.distribution.manifest.v2+json',
20
+ 'application/vnd.oci.image.manifest.v1+json']
20
21
  self.content_api.list(page_opts)
21
22
  end
22
23
 
@@ -14,7 +14,8 @@ module Katello
14
14
  end
15
15
 
16
16
  def self.content_unit_list(page_opts)
17
- page_opts[:media_type] = ["application/vnd.docker.distribution.manifest.list.v2+json"]
17
+ page_opts[:media_type] = ['application/vnd.docker.distribution.manifest.list.v2+json',
18
+ 'application/vnd.oci.image.index.v1+json']
18
19
  self.content_api.list(page_opts)
19
20
  end
20
21
 
@@ -73,6 +73,27 @@ module Katello
73
73
  distribution.try(:repository_version).nil?
74
74
  end
75
75
 
76
+ def delete_orphan_alternate_content_sources
77
+ tasks = []
78
+ known_acs_hrefs = []
79
+ known_acss = smart_proxy.smart_proxy_alternate_content_sources
80
+ known_acs_hrefs = known_acss.pluck(:alternate_content_source_href) if known_acss.present?
81
+
82
+ file_acs_api = ::Katello::Pulp3::Repository.api(smart_proxy, 'file').alternate_content_source_api
83
+ yum_acs_api = ::Katello::Pulp3::Repository.api(smart_proxy, 'yum').alternate_content_source_api
84
+
85
+ orphan_file_acs_hrefs = file_acs_api.list.results.map(&:pulp_href) - known_acs_hrefs
86
+ orphan_yum_acs_hrefs = yum_acs_api.list.results.map(&:pulp_href) - known_acs_hrefs
87
+
88
+ orphan_file_acs_hrefs.each do |orphan_file_acs_href|
89
+ tasks << file_acs_api.delete(orphan_file_acs_href)
90
+ end
91
+
92
+ orphan_yum_acs_hrefs.each do |orphan_yum_acs_href|
93
+ tasks << yum_acs_api.delete(orphan_yum_acs_href)
94
+ end
95
+ end
96
+
76
97
  def delete_orphan_remotes
77
98
  tasks = []
78
99
  repo_names = Katello::Repository.pluck(:pulp_id)
@@ -3925,7 +3925,7 @@ msgid "System Purpose"
3925
3925
  msgstr ""
3926
3926
 
3927
3927
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
3928
- msgid "System Purpose allows you to set the system's intended use on your network and improves the accuracy of auto attaching subscriptions."
3928
+ msgid "System purpose enables you to set the system's intended use on your network and improves reporting accuracy in the Subscriptions service of the Red Hat Hybrid Cloud Console."
3929
3929
  msgstr ""
3930
3930
 
3931
3931
  #: app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-info.html
@@ -4146,7 +4146,7 @@ msgid "This organization has Simple Content Access enabled. Hosts are not requi
4146
4146
  msgstr ""
4147
4147
 
4148
4148
  #: app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html
4149
- msgid "This organization is not using <a target=\"_blank\" href=\"https://access.redhat.com/articles/simple-content-access\">Simple Content Access.</a> Legacy subscription management is deprecated and will be removed in a future version."
4149
+ msgid "This organization is not using <a target=\"_blank\" href=\"https://access.redhat.com/articles/simple-content-access\">Simple Content Access.</a> Entitlement-based subscription management is deprecated and will be removed in a future version."
4150
4150
  msgstr ""
4151
4151
 
4152
4152
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html
@@ -34,7 +34,8 @@ Katello::RepositoryTypeManager.register(::Katello::Repository::DOCKER_TYPE) do
34
34
  content_type Katello::DockerTag,
35
35
  :priority => 3,
36
36
  :pulp3_service_class => ::Katello::Pulp3::DockerTag,
37
- :primary_content => true
37
+ :primary_content => true,
38
+ :mutable => true
38
39
  content_type Katello::DockerBlob,
39
40
  :priority => 4,
40
41
  :pulp3_service_class => ::Katello::Pulp3::DockerBlob,
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.7.0.rc1".freeze
2
+ VERSION = "4.7.0.rc2".freeze
3
3
  end
@@ -1,84 +1,84 @@
1
1
  # Autogenerated!
2
+ _("Action with sub plans")
2
3
  _("Import facts")
3
4
  _("Import Puppet classes")
4
- _("Action with sub plans")
5
+ _("Abstract async task")
6
+ _("Combined Profile Update")
5
7
  _("Create")
6
8
  _("Delete Activation Key")
9
+ _("Remote action:")
7
10
  _("Update")
8
- _("Abstract async task")
9
- _("Update CDN Configuration")
10
- _("Delete")
11
- _("Errata mail")
12
- _("Incremental Update of Content View Version(s) ")
13
11
  _("Agent action")
14
- _("Create Alternate Content Source")
15
12
  _("Destroy Alternate Content Source")
16
13
  _("Refresh Alternate Content Source")
17
- _("Update Alternate Content Source")
18
- _("Generate host applicability")
14
+ _("Create Alternate Content Source")
19
15
  _("Bulk generate applicability for hosts")
20
16
  _("Generate repository applicability")
17
+ _("Update Alternate Content Source")
18
+ _("Generate host applicability")
19
+ _("Update CDN Configuration")
21
20
  _("Synchronize smart proxy")
22
21
  _("Sync capsule")
23
- _("Promote")
24
- _("Promotion to Environment")
25
- _("Publish")
26
- _("Remove Versions and Associations")
27
- _("Remove from Environment")
28
- _("Remove Version")
22
+ _("Syncable export")
23
+ _("Import")
24
+ _("Export Repository")
25
+ _("Export Library")
29
26
  _("Export")
30
- _("Import Content View Version")
31
- _("Import Default Content View")
32
- _("Import Repository")
33
- _("Incremental Update")
34
- _("Republish Version Repositories")
35
- _("Delete Lifecycle Environment")
36
- _("Publish Lifecycle Environment Repositories")
37
- _("Attach subscriptions")
38
- _("Auto attach subscriptions")
39
- _("Destroy Content Host")
40
- _("Install Applicable Errata")
41
- _("Hypervisors")
42
- _("Hypervisors update")
43
- _("Remove subscriptions")
44
- _("Update Content Overrides")
45
- _("Update for host")
46
- _("Update release version for host")
47
- _("Updating System Purpose for host")
48
- _("Package Profile Update")
49
- _("Combined Profile Update")
50
- _("Destroy")
51
- _("Product Create")
52
- _("Delete Product")
53
- _("Reindex subscriptions")
54
- _("Update http proxy")
55
- _("Delete Package Group")
56
- _("Discover")
57
- _("Fetch pxe files")
58
- _("Filtered index content")
59
- _("Upload into")
60
- _("Index content")
61
- _("Index errata")
62
- _("Index module streams")
63
- _("Index package groups")
64
- _("Instance update")
65
- _("Remove Content")
66
- _("Synchronize")
67
- _("Update content urls")
68
- _("Update http proxy details")
69
- _("Update redhat repository")
70
- _("Create Package Group")
71
- _("Verify checksum")
72
- _("Disable")
73
- _("Enable")
74
- _("Run Sync Plan:")
75
- _("Abstract")
76
- _("Create Export History")
27
+ _("Copy version units to library")
77
28
  _("Create Import History")
78
29
  _("Create Syncable Export History")
79
- _("Copy version units to library")
80
- _("Export Library")
81
- _("Export Repository")
82
- _("Import")
83
- _("Syncable export")
84
- _("Remote action:")
30
+ _("Create Export History")
31
+ _("Abstract")
32
+ _("Disable")
33
+ _("Run Sync Plan:")
34
+ _("Enable")
35
+ _("Verify checksum")
36
+ _("Create Package Group")
37
+ _("Upload into")
38
+ _("Update redhat repository")
39
+ _("Update http proxy details")
40
+ _("Update content urls")
41
+ _("Synchronize")
42
+ _("Remove Content")
43
+ _("Instance update")
44
+ _("Index package groups")
45
+ _("Index module streams")
46
+ _("Index errata")
47
+ _("Index content")
48
+ _("Filtered index content")
49
+ _("Fetch pxe files")
50
+ _("Errata mail")
51
+ _("Discover")
52
+ _("Delete Package Group")
53
+ _("Delete")
54
+ _("Attach subscriptions")
55
+ _("Publish Lifecycle Environment Repositories")
56
+ _("Update http proxy")
57
+ _("Reindex subscriptions")
58
+ _("Delete Product")
59
+ _("Product Create")
60
+ _("Destroy")
61
+ _("Package Profile Update")
62
+ _("Updating System Purpose for host")
63
+ _("Update release version for host")
64
+ _("Update for host")
65
+ _("Update Content Overrides")
66
+ _("Remove subscriptions")
67
+ _("Hypervisors update")
68
+ _("Hypervisors")
69
+ _("Install Applicable Errata")
70
+ _("Destroy Content Host")
71
+ _("Auto attach subscriptions")
72
+ _("Delete Lifecycle Environment")
73
+ _("Republish Version Repositories")
74
+ _("Incremental Update")
75
+ _("Import Repository")
76
+ _("Import Default Content View")
77
+ _("Import Content View Version")
78
+ _("Remove Version")
79
+ _("Remove from Environment")
80
+ _("Remove Versions and Associations")
81
+ _("Publish")
82
+ _("Promotion to Environment")
83
+ _("Promote")
84
+ _("Incremental Update of Content View Version(s) ")