katello 4.12.1 → 4.13.0.rc1
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 +4 -4
- data/app/assets/javascripts/katello/locale/bn/katello.js +3365 -3350
- data/app/assets/javascripts/katello/locale/bn_IN/katello.js +3136 -3121
- data/app/assets/javascripts/katello/locale/ca/katello.js +3588 -3576
- data/app/assets/javascripts/katello/locale/cs/katello.js +3499 -3487
- data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +4186 -4186
- data/app/assets/javascripts/katello/locale/de/katello.js +5553 -5562
- data/app/assets/javascripts/katello/locale/de_AT/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/de_DE/katello.js +3066 -3051
- data/app/assets/javascripts/katello/locale/el/katello.js +3376 -3370
- data/app/assets/javascripts/katello/locale/en/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/en_GB/katello.js +3076 -3073
- data/app/assets/javascripts/katello/locale/en_US/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/es/katello.js +5366 -5372
- data/app/assets/javascripts/katello/locale/et_EE/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/fr/katello.js +5975 -5984
- data/app/assets/javascripts/katello/locale/gl/katello.js +3125 -3113
- data/app/assets/javascripts/katello/locale/gu/katello.js +3119 -3104
- data/app/assets/javascripts/katello/locale/he_IL/katello.js +3020 -3005
- data/app/assets/javascripts/katello/locale/hi/katello.js +3137 -3122
- data/app/assets/javascripts/katello/locale/id/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/it/katello.js +4469 -4466
- data/app/assets/javascripts/katello/locale/ja/katello.js +5969 -5978
- data/app/assets/javascripts/katello/locale/ka/katello.js +5649 -5652
- data/app/assets/javascripts/katello/locale/kn/katello.js +3136 -3121
- data/app/assets/javascripts/katello/locale/ko/katello.js +4717 -4720
- data/app/assets/javascripts/katello/locale/locale/katello.js +1050 -1084
- data/app/assets/javascripts/katello/locale/ml_IN/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/mr/katello.js +3136 -3121
- data/app/assets/javascripts/katello/locale/nl_NL/katello.js +3116 -3101
- data/app/assets/javascripts/katello/locale/or/katello.js +3137 -3122
- data/app/assets/javascripts/katello/locale/pa/katello.js +3136 -3121
- data/app/assets/javascripts/katello/locale/pl/katello.js +3210 -3195
- data/app/assets/javascripts/katello/locale/pl_PL/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/pt/katello.js +3009 -2994
- data/app/assets/javascripts/katello/locale/pt_BR/katello.js +5362 -5368
- data/app/assets/javascripts/katello/locale/ro/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/ro_RO/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/ru/katello.js +4638 -4641
- data/app/assets/javascripts/katello/locale/sl/katello.js +3051 -3036
- data/app/assets/javascripts/katello/locale/sv_SE/katello.js +3156 -3144
- data/app/assets/javascripts/katello/locale/ta/katello.js +3365 -3350
- data/app/assets/javascripts/katello/locale/ta_IN/katello.js +3121 -3106
- data/app/assets/javascripts/katello/locale/te/katello.js +3136 -3121
- data/app/assets/javascripts/katello/locale/tr/katello.js +3025 -3010
- data/app/assets/javascripts/katello/locale/vi/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/vi_VN/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/zh/katello.js +3008 -2993
- data/app/assets/javascripts/katello/locale/zh_CN/katello.js +5968 -5977
- data/app/assets/javascripts/katello/locale/zh_TW/katello.js +4694 -4697
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +51 -124
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +12 -20
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +10 -4
- data/app/controllers/katello/api/v2/capsule_content_controller.rb +24 -0
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +9 -2
- data/app/controllers/katello/api/v2/debs_controller.rb +1 -1
- data/app/controllers/katello/api/v2/errata_controller.rb +1 -1
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -4
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +3 -3
- data/app/controllers/katello/api/v2/organizations_controller.rb +0 -11
- data/app/controllers/katello/api/v2/packages_controller.rb +1 -1
- data/app/controllers/katello/api/v2/repositories_controller.rb +18 -12
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +2 -1
- data/app/controllers/katello/api/v2/simple_content_access_controller.rb +9 -22
- data/app/controllers/katello/concerns/api/v2/authorization.rb +1 -1
- data/app/helpers/katello/subscription_mailer_helper.rb +1 -1
- data/app/jobs/create_manifest_expire_soon_warning_notifications.rb +11 -0
- data/app/lib/actions/candlepin/owner/regenerate_upstream_identity_cert.rb +21 -0
- data/app/lib/actions/katello/capsule_content/sync.rb +1 -1
- data/app/lib/actions/katello/capsule_content/verify_checksum.rb +75 -0
- data/app/lib/actions/katello/content_view/promote.rb +1 -1
- data/app/lib/actions/katello/content_view/publish.rb +1 -1
- data/app/lib/actions/katello/content_view_version/verify_checksum.rb +29 -0
- data/app/lib/actions/katello/host/hypervisors_update.rb +1 -0
- data/app/lib/actions/katello/host/update_content_view.rb +2 -2
- data/app/lib/actions/katello/organization/manifest_import.rb +5 -0
- data/app/lib/actions/katello/organization/manifest_refresh.rb +3 -0
- data/app/lib/actions/katello/repository/metadata_generate.rb +7 -1
- data/app/lib/actions/katello/repository/remove_content.rb +1 -0
- data/app/lib/actions/katello/repository/sync.rb +2 -1
- data/app/lib/actions/katello/repository/upload_files.rb +1 -0
- data/app/lib/actions/pulp3/capsule_content/verify_checksum.rb +27 -0
- data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +7 -9
- data/app/lib/actions/pulp3/orchestration/content_view_version/syncable_export.rb +5 -4
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +7 -2
- data/app/lib/katello/http_resource.rb +6 -1
- data/app/lib/katello/resources/candlepin/consumer.rb +1 -1
- data/app/lib/katello/resources/candlepin/upstream_consumer.rb +18 -6
- data/app/lib/katello/resources/candlepin/upstream_job.rb +1 -1
- data/app/lib/katello/resources/registry.rb +25 -0
- data/app/mailers/katello/subscription_mailer.rb +3 -6
- data/app/models/katello/concerns/organization_extensions.rb +42 -3
- data/app/models/katello/content_view.rb +28 -0
- data/app/models/katello/content_view_environment_content_facet.rb +4 -2
- data/app/models/katello/glue/provider.rb +19 -12
- data/app/models/katello/glue/pulp/repos.rb +3 -2
- data/app/models/katello/host/content_facet.rb +1 -1
- data/app/models/katello/host/subscription_facet.rb +1 -1
- data/app/models/katello/ping.rb +1 -1
- data/app/models/katello/repository.rb +27 -0
- data/app/models/katello/root_repository.rb +0 -4
- data/app/services/katello/content_unit_indexer.rb +9 -0
- data/app/services/katello/pulp3/alternate_content_source.rb +4 -6
- data/app/services/katello/pulp3/api/core.rb +13 -0
- data/app/services/katello/pulp3/api/yum.rb +11 -0
- data/app/services/katello/pulp3/docker_manifest.rb +5 -1
- data/app/services/katello/pulp3/repository/generic.rb +1 -1
- data/app/services/katello/pulp3/repository.rb +26 -6
- data/app/services/katello/pulp3/repository_mirror.rb +13 -12
- data/app/services/katello/pulp3/service_common.rb +2 -10
- data/app/services/katello/pulp3/smart_proxy_repository.rb +0 -2
- data/app/services/katello/ui_notifications/subscriptions/manifest_expire_soon_warning.rb +75 -0
- data/app/views/foreman/job_templates/update_package_-_katello_ansible_default.erb +5 -1
- data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +2 -2
- data/app/views/foreman/job_templates/upload_profile.erb +16 -0
- data/app/views/katello/api/v2/content_view_filter_rules/show.json.rabl +9 -0
- data/app/views/katello/api/v2/docker_manifests/show.json.rabl +1 -0
- data/app/views/katello/api/v2/organizations/show.json.rabl +9 -1
- data/app/views/overrides/activation_keys/_host_environment_select.html.erb +1 -1
- data/app/views/overrides/activation_keys/_host_media_type_select.html.erb +15 -5
- data/config/routes/api/registry.rb +4 -8
- data/config/routes/api/v2.rb +2 -0
- data/db/migrate/20240423112842_add_fields_to_katello_docker_manifest.rb +8 -0
- data/db/migrate/20240502192021_change_katello_repository_rpms_id_seq_to_big_int.rb +9 -0
- data/db/seeds.d/109-katello-notification-blueprints.rb +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-repository-sets.controller.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +0 -15
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +8 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +12 -10
- data/lib/katello/permission_creator.rb +3 -3
- data/lib/katello/permissions/registry_permissions.rb +4 -7
- data/lib/katello/plugin.rb +9 -8
- data/lib/katello/repository_types/ostree.rb +7 -0
- data/lib/katello/scheduled_jobs.rb +7 -1
- data/lib/katello/tasks/clean_backend_objects.rake +1 -1
- data/lib/katello/tasks/repository.rake +22 -0
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +4 -3
- data/locale/bn/katello.po +166 -151
- data/locale/bn_IN/katello.po +166 -151
- data/locale/ca/katello.po +166 -151
- data/locale/cs/katello.po +166 -151
- data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs_CZ/katello.po +172 -157
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +178 -163
- data/locale/de_AT/katello.po +166 -151
- data/locale/de_DE/katello.po +166 -151
- data/locale/el/katello.po +166 -151
- data/locale/en/katello.po +166 -151
- data/locale/en_GB/katello.po +166 -151
- data/locale/en_US/katello.po +166 -151
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +178 -163
- data/locale/et_EE/katello.po +166 -151
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +179 -164
- data/locale/gl/katello.po +166 -151
- data/locale/gu/katello.po +166 -151
- data/locale/he_IL/katello.po +166 -151
- data/locale/hi/katello.po +166 -151
- data/locale/id/katello.po +166 -151
- data/locale/it/LC_MESSAGES/katello.mo +0 -0
- data/locale/it/katello.po +169 -154
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +179 -164
- data/locale/ka/LC_MESSAGES/katello.mo +0 -0
- data/locale/ka/katello.po +177 -162
- data/locale/katello.pot +1119 -1062
- data/locale/kn/katello.po +166 -151
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +174 -159
- data/locale/ml_IN/katello.po +166 -151
- data/locale/mr/katello.po +166 -151
- data/locale/nl_NL/katello.po +166 -151
- data/locale/or/katello.po +166 -151
- data/locale/pa/katello.po +166 -151
- data/locale/pl/katello.po +166 -151
- data/locale/pl_PL/katello.po +166 -151
- data/locale/pt/katello.po +166 -151
- data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt_BR/katello.po +178 -163
- data/locale/ro/katello.po +166 -151
- data/locale/ro_RO/katello.po +166 -151
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +171 -156
- data/locale/sl/katello.po +166 -151
- data/locale/sv_SE/katello.po +166 -151
- data/locale/ta/katello.po +166 -151
- data/locale/ta_IN/katello.po +166 -151
- data/locale/te/katello.po +166 -151
- data/locale/tr/katello.po +166 -151
- data/locale/vi/katello.po +166 -151
- data/locale/vi_VN/katello.po +166 -151
- data/locale/zh/katello.po +166 -151
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +179 -164
- data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_TW/katello.po +171 -156
- data/webpack/ForemanColumnExtensions/index.js +129 -0
- data/webpack/components/Table/TableWrapper.js +14 -0
- data/webpack/components/extensions/HostDetails/ActionsBar/index.js +1 -1
- data/webpack/components/extensions/Hosts/ActionsBar/index.js +20 -1
- data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/BulkChangeHostCVModal.js +220 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/actions.js +23 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/index.js +25 -0
- data/webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js +133 -0
- data/webpack/global_index.js +9 -0
- data/webpack/scenes/Hosts/ChangeContentSource/actions.js +3 -1
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +62 -24
- data/webpack/scenes/Hosts/ChangeContentSource/index.js +24 -16
- data/webpack/scenes/RedHatRepositories/__tests__/__snapshots__/RedHatRepositoriesPage.test.js.snap +1 -0
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +64 -5
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +16 -13
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/__snapshots__/UpstreamSubscriptionsPage.test.js.snap +14 -8
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +1 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +1 -1
- metadata +59 -41
- data/app/lib/actions/katello/host/upload_package_profile.rb +0 -45
- data/app/lib/actions/katello/host/upload_profiles.rb +0 -47
@@ -3,10 +3,18 @@ object @organization
|
|
3
3
|
extends "api/v2/taxonomies/show"
|
4
4
|
|
5
5
|
attributes :task_id, :label, :redhat_repository_url
|
6
|
-
|
6
|
+
attributes :manifest_expiration_date, :manifest_expire_days_remaining
|
7
7
|
attributes :system_purposes, :system_purposes
|
8
8
|
attributes :service_levels, :service_level
|
9
9
|
|
10
|
+
node :manifest_expiring_soon do |org|
|
11
|
+
org.manifest_expiring_soon?
|
12
|
+
end
|
13
|
+
|
14
|
+
node :manifest_expired do |org|
|
15
|
+
org.manifest_expired?
|
16
|
+
end
|
17
|
+
|
10
18
|
node :simple_content_access do |org|
|
11
19
|
org.simple_content_access?
|
12
20
|
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
<% if edit_action? && !using_hostgroups_page? && !using_discovered_hosts_page? %>
|
10
10
|
<div style="margin-left: 270px">
|
11
|
-
<%= link_to _("Change content source"), "/change_host_content_source?host_id=#{@host.id}" %>
|
11
|
+
<%= link_to _("Change content source"), "/change_host_content_source?fromPage=hostEdit&host_id=#{@host.id}&initialContentSourceId=#{@host.content_source_id}" %>
|
12
12
|
</div>
|
13
13
|
<% end %>
|
14
14
|
|
@@ -16,19 +16,29 @@
|
|
16
16
|
%>
|
17
17
|
|
18
18
|
<div class="clear-fix" id="media_selection_section">
|
19
|
-
<div class="form-group
|
20
|
-
<label class="col-md-2 control-label" for="use_install_media"
|
19
|
+
<div class="form-group">
|
20
|
+
<label class="col-md-2 control-label" for="use_install_media">
|
21
|
+
<%= _('Media Selection') %>
|
22
|
+
</label>
|
21
23
|
<div class="col-md-4">
|
22
24
|
<label class="radio-inline">
|
23
|
-
<input data-media-selector="true" id="host_use_synced_content" name="media_selector" value="synced_content" type="radio"
|
25
|
+
<input data-media-selector="true" id="host_use_synced_content" name="media_selector" value="synced_content" type="radio"
|
26
|
+
<%= synced_content_radio %>
|
27
|
+
<%= synced_content_disabled %>
|
28
|
+
/>
|
29
|
+
<%= _('Synced Content') %>
|
24
30
|
</label>
|
31
|
+
<%= popover("", _("To enable the synced content option, this host must use a content source, content view, and lifecycle environment which contain synced kickstart repositories for the selected architecture and operating system.")) %>
|
25
32
|
<label class="radio-inline">
|
26
|
-
<input data-media-selector="true" id="host_use_install_media" name="media_selector" value="install_media" type="radio"
|
33
|
+
<input data-media-selector="true" id="host_use_install_media" name="media_selector" value="install_media" type="radio"
|
34
|
+
<%= install_media_radio %>
|
35
|
+
<%= install_media_disabled %>
|
36
|
+
/>
|
37
|
+
<%= _('All Media') %>
|
27
38
|
</label>
|
28
39
|
<span class="help-block">
|
29
40
|
<%= _("Select the installation media that will be used to provision this host. Choose 'Synced Content' for Synced Kickstart Repositories or 'All Media' for other media.") %>
|
30
41
|
</span>
|
31
42
|
</div>
|
32
|
-
<span class="help-block help-inline"></span>
|
33
43
|
</div>
|
34
44
|
</div>
|
@@ -10,16 +10,12 @@ Katello::Engine.routes.draw do
|
|
10
10
|
match '/v2/token' => 'registry_proxies#token', :via => :get
|
11
11
|
match '/v2/token' => 'registry_proxies#token', :via => :post
|
12
12
|
match '/v2/*repository/manifests/:tag' => 'registry_proxies#pull_manifest', :via => :get
|
13
|
-
|
14
|
-
# match '/v2/*repository/manifests/:tag' => 'registry_proxies#push_manifest', :via => :put
|
13
|
+
match '/v2/*repository/manifests/:tag' => 'registry_proxies#push_manifest', :via => :put
|
15
14
|
match '/v2/*repository/blobs/:digest' => 'registry_proxies#pull_blob', :via => :get
|
16
15
|
match '/v2/*repository/blobs/:digest' => 'registry_proxies#check_blob', :via => :head
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
# match '/v2/*repository/blobs/uploads/:uuid' => 'registry_proxies#upload_blob', :via => :patch
|
21
|
-
# match '/v2/*repository/blobs/uploads/:uuid' => 'registry_proxies#status_upload_blob', :via => :get
|
22
|
-
# match '/v2/*repository/blobs/uploads/:uuid' => 'registry_proxies#cancel_upload_blob', :via => :delete
|
16
|
+
match '/v2/*repository/blobs/uploads' => 'registry_proxies#start_upload_blob', :via => :post
|
17
|
+
match '/v2/*repository/blobs/uploads/:uuid' => 'registry_proxies#finish_upload_blob', :via => :put
|
18
|
+
match '/v2/*repository/blobs/uploads/:uuid' => 'registry_proxies#upload_blob', :via => :patch
|
23
19
|
match '/v2/_catalog' => 'registry_proxies#catalog', :via => :get
|
24
20
|
match '/v2/*repository/tags/list' => 'registry_proxies#tags_list', :via => :get
|
25
21
|
match '/v2' => 'registry_proxies#ping', :via => :get
|
data/config/routes/api/v2.rb
CHANGED
@@ -29,6 +29,7 @@ Katello::Engine.routes.draw do
|
|
29
29
|
get :sync, :action => :sync_status
|
30
30
|
delete :sync, :action => :cancel_sync
|
31
31
|
post :reclaim_space
|
32
|
+
post :verify_checksum
|
32
33
|
post '/lifecycle_environments' => 'capsule_content#add_lifecycle_environment'
|
33
34
|
delete '/lifecycle_environments/:environment_id' => 'capsule_content#remove_lifecycle_environment'
|
34
35
|
end
|
@@ -149,6 +150,7 @@ Katello::Engine.routes.draw do
|
|
149
150
|
post :promote
|
150
151
|
post :export
|
151
152
|
put :republish_repositories
|
153
|
+
post :verify_checksum
|
152
154
|
end
|
153
155
|
collection do
|
154
156
|
get :auto_complete_search
|
@@ -0,0 +1,8 @@
|
|
1
|
+
class AddFieldsToKatelloDockerManifest < ActiveRecord::Migration[6.1]
|
2
|
+
def change
|
3
|
+
add_column :katello_docker_manifests, :annotations, :jsonb, default: {}
|
4
|
+
add_column :katello_docker_manifests, :labels, :jsonb, default: {}
|
5
|
+
add_column :katello_docker_manifests, :is_bootable, :boolean, default: false
|
6
|
+
add_column :katello_docker_manifests, :is_flatpak, :boolean, default: false
|
7
|
+
end
|
8
|
+
end
|
@@ -25,6 +25,12 @@ blueprints = [
|
|
25
25
|
message: N_('%{expiring_subs} subscriptions in %{subject} are going to expire in less than %{days} days. Please renew them before they expire to guarantee your hosts will continue receiving content.'),
|
26
26
|
level: 'warning'
|
27
27
|
},
|
28
|
+
{
|
29
|
+
group: N_('Subscriptions'),
|
30
|
+
name: 'manifest_expire_soon_warning',
|
31
|
+
message: N_('Manifest in organization %{subject} has an identity certificate that will expire in %{days_remaining} days, on %{manifest_expire_date}. To extend the expiration date, please refresh your manifest.'),
|
32
|
+
level: 'info'
|
33
|
+
},
|
28
34
|
{
|
29
35
|
group: N_('Subscriptions'),
|
30
36
|
name: 'manifest_expired_warning',
|
@@ -23,7 +23,7 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyRepositorySet
|
|
23
23
|
|
24
24
|
params = {
|
25
25
|
'activation_key_id': $scope.$stateParams.activationKeyId,
|
26
|
-
'content_access_mode_all':
|
26
|
+
'content_access_mode_all': true,
|
27
27
|
'content_access_mode_env': true,
|
28
28
|
'sort_order': 'ASC',
|
29
29
|
'paged': true
|
@@ -39,7 +39,7 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyRepositorySet
|
|
39
39
|
$scope.repositoryType = {};
|
40
40
|
|
41
41
|
$scope.contentAccessModes = {
|
42
|
-
contentAccessModeAll:
|
42
|
+
contentAccessModeAll: true,
|
43
43
|
contentAccessModeEnv: true
|
44
44
|
};
|
45
45
|
|
@@ -53,7 +53,7 @@ angular.module('Bastion.activation-keys').controller('ActivationKeyRepositorySet
|
|
53
53
|
|
54
54
|
$scope.toggleFilters = function () {
|
55
55
|
$scope.nutupane.table.params['content_access_mode_env'] = $scope.contentAccessModes.contentAccessModeEnv;
|
56
|
-
$scope.nutupane.table.params['content_access_mode_all'] =
|
56
|
+
$scope.nutupane.table.params['content_access_mode_all'] = true;
|
57
57
|
$scope.nutupane.refresh();
|
58
58
|
};
|
59
59
|
|
@@ -35,7 +35,8 @@
|
|
35
35
|
class="form-control"
|
36
36
|
style="font-family: monospace"
|
37
37
|
rows="15"
|
38
|
-
placeholder="{{ 'Paste contents of Content Credential' | translate }}"
|
38
|
+
placeholder="{{ 'Paste contents of Content Credential' | translate }}"
|
39
|
+
required>
|
39
40
|
</textarea>
|
40
41
|
</div>
|
41
42
|
|
@@ -20,7 +20,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostRepositorySetsCon
|
|
20
20
|
|
21
21
|
params = {
|
22
22
|
'host_id': $scope.$stateParams.hostId,
|
23
|
-
'content_access_mode_all':
|
23
|
+
'content_access_mode_all': true,
|
24
24
|
'sort_order': 'ASC',
|
25
25
|
'paged': true
|
26
26
|
};
|
@@ -33,11 +33,11 @@ angular.module('Bastion.content-hosts').controller('ContentHostRepositorySetsCon
|
|
33
33
|
$scope.nutupane.primaryOnly = true;
|
34
34
|
|
35
35
|
$scope.contentAccessModes = {
|
36
|
-
contentAccessModeAll:
|
36
|
+
contentAccessModeAll: true,
|
37
37
|
contentAccessModeEnv: false
|
38
38
|
};
|
39
39
|
$scope.toggleFilters = function () {
|
40
|
-
$scope.nutupane.table.params['content_access_mode_all'] =
|
40
|
+
$scope.nutupane.table.params['content_access_mode_all'] = true;
|
41
41
|
$scope.nutupane.table.params['content_access_mode_env'] = $scope.contentAccessModes.contentAccessModeEnv;
|
42
42
|
$scope.nutupane.refresh();
|
43
43
|
};
|
data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot
CHANGED
@@ -3973,7 +3973,6 @@ msgstr ""
|
|
3973
3973
|
#: app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-module-streams.html
|
3974
3974
|
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html
|
3975
3975
|
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-repository-sets.html
|
3976
|
-
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html
|
3977
3976
|
#: app/assets/javascripts/bastion_katello/tasks/views/tasks-table.html
|
3978
3977
|
#: app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html
|
3979
3978
|
msgid "Status"
|
@@ -3995,8 +3994,6 @@ msgid "Subscription Management"
|
|
3995
3994
|
msgstr ""
|
3996
3995
|
|
3997
3996
|
#: app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html
|
3998
|
-
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
|
3999
|
-
#: app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html
|
4000
3997
|
msgid "Subscription Status"
|
4001
3998
|
msgstr ""
|
4002
3999
|
|
@@ -4178,10 +4175,6 @@ msgstr ""
|
|
4178
4175
|
msgid "System Purpose Management"
|
4179
4176
|
msgstr ""
|
4180
4177
|
|
4181
|
-
#: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
|
4182
|
-
msgid "System Purpose Status"
|
4183
|
-
msgstr ""
|
4184
|
-
|
4185
4178
|
#: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifest-lists.html
|
4186
4179
|
#: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html
|
4187
4180
|
msgid "Tags"
|
@@ -4398,14 +4391,6 @@ msgid ""
|
|
4398
4391
|
" Change the setting \"Delete Host upon Unregister\" to false on the <a href=\"/settings\">settings page</a> to prevent this."
|
4399
4392
|
msgstr ""
|
4400
4393
|
|
4401
|
-
#: app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html
|
4402
|
-
msgid "This organization has Simple Content Access enabled. Hosts are not required to have subscriptions attached to access repositories."
|
4403
|
-
msgstr ""
|
4404
|
-
|
4405
|
-
#: app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html
|
4406
|
-
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 Katello 4.12."
|
4407
|
-
msgstr ""
|
4408
|
-
|
4409
4394
|
#: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html
|
4410
4395
|
#: app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html
|
4411
4396
|
#: app/assets/javascripts/bastion_katello/content-hosts/content/views/errata-details.html
|
@@ -189,12 +189,14 @@
|
|
189
189
|
type="{{ repository.upstream_password.length < 1 ? 'text': 'password' }}"
|
190
190
|
autocomplete="{{ (repository.upstream_username==null || repository.upstream_username=='') ? 'new-password' : '' }}"
|
191
191
|
ng-model="repository.upstream_password"/>
|
192
|
-
<
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
192
|
+
<span ng-show="repository.content_type === 'yum'">
|
193
|
+
<div translate>Upstream Authentication Token</div>
|
194
|
+
<input id="upstream_authentication_token"
|
195
|
+
name="upstream_authentication_token"
|
196
|
+
type="{{ repository.upstream_authentication_token.length < 1 ? 'text': 'password' }}"
|
197
|
+
autocomplete="off"
|
198
|
+
ng-model="repository.upstream_authentication_token"/>
|
199
|
+
</span>
|
198
200
|
</dd>
|
199
201
|
</span>
|
200
202
|
|
@@ -250,16 +250,18 @@
|
|
250
250
|
</p>
|
251
251
|
</div>
|
252
252
|
|
253
|
-
<
|
254
|
-
<
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
253
|
+
<span ng-show="repository.content_type === 'yum'">
|
254
|
+
<div bst-form-group label="{{ 'Upstream Authentication Token' | translate }}" >
|
255
|
+
<input id="upstream_authentication_token"
|
256
|
+
name="upstream_authentication_token"
|
257
|
+
type="text"
|
258
|
+
autocomplete="off"
|
259
|
+
ng-model="repository.upstream_authentication_token"/>
|
260
|
+
<p class="help-block" translate>
|
261
|
+
Token of the upstream repository user for authentication. Leave empty if repository does not require authentication.
|
262
|
+
</p>
|
263
|
+
</div>
|
264
|
+
</span>
|
263
265
|
|
264
266
|
<div ng-repeat="option in genericRemoteOptions" ng-if="repository.generic_remote_options !== []">
|
265
267
|
<div ng-if='option.input_type=="text"' bst-form-group label="{{ option.title | translate }}">
|
@@ -54,7 +54,7 @@ module Katello
|
|
54
54
|
@plugin.permission :manage_capsule_content,
|
55
55
|
{
|
56
56
|
'katello/api/v2/capsule_content' => [:add_lifecycle_environment, :remove_lifecycle_environment,
|
57
|
-
:update_counts, :sync, :reclaim_space, :cancel_sync],
|
57
|
+
:update_counts, :sync, :reclaim_space, :verify_checksum, :cancel_sync],
|
58
58
|
'katello/api/v2/capsules' => [:index, :show]
|
59
59
|
},
|
60
60
|
:resource_type => 'SmartProxy'
|
@@ -134,7 +134,7 @@ module Katello
|
|
134
134
|
@plugin.permission :publish_content_views,
|
135
135
|
{
|
136
136
|
'katello/api/v2/content_views' => [:publish],
|
137
|
-
'katello/api/v2/content_view_versions' => [:incremental_update, :republish_repositories],
|
137
|
+
'katello/api/v2/content_view_versions' => [:incremental_update, :republish_repositories, :verify_checksum],
|
138
138
|
'katello/api/v2/content_imports' => [:version, :index]
|
139
139
|
},
|
140
140
|
:resource_type => 'Katello::ContentView',
|
@@ -142,7 +142,7 @@ module Katello
|
|
142
142
|
@plugin.permission :promote_or_remove_content_views,
|
143
143
|
{
|
144
144
|
'katello/api/v2/content_view_versions' => [:promote],
|
145
|
-
'katello/api/v2/content_views' => [:remove_from_environment, :remove, :republish_repositories]
|
145
|
+
'katello/api/v2/content_views' => [:remove_from_environment, :remove, :republish_repositories, :verify_checksum]
|
146
146
|
},
|
147
147
|
:resource_type => 'Katello::ContentView',
|
148
148
|
:finder_scope => :promotable_or_removable
|
@@ -8,13 +8,10 @@ Foreman::AccessControl.permission(:create_personal_access_tokens).actions.concat
|
|
8
8
|
'katello/api/registry/registry_proxies/catalog',
|
9
9
|
'katello/api/registry/registry_proxies/tags_list',
|
10
10
|
'katello/api/registry/registry_proxies/pull_manifest',
|
11
|
-
|
11
|
+
'katello/api/registry/registry_proxies/push_manifest',
|
12
12
|
'katello/api/registry/registry_proxies/pull_blob',
|
13
13
|
'katello/api/registry/registry_proxies/check_blob',
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
#'katello/api/registry/registry_proxies/finish_upload_blob',
|
18
|
-
'katello/api/registry/registry_proxies/status_upload_blob',
|
19
|
-
'katello/api/registry/registry_proxies/cancel_upload_blob'
|
14
|
+
'katello/api/registry/registry_proxies/start_upload_blob',
|
15
|
+
'katello/api/registry/registry_proxies/upload_blob',
|
16
|
+
'katello/api/registry/registry_proxies/finish_upload_blob'
|
20
17
|
]
|
data/lib/katello/plugin.rb
CHANGED
@@ -4,7 +4,7 @@ require 'katello/host_status_manager'
|
|
4
4
|
# rubocop:disable Metrics/BlockLength
|
5
5
|
|
6
6
|
Foreman::Plugin.register :katello do
|
7
|
-
requires_foreman '>= 3.
|
7
|
+
requires_foreman '>= 3.11'
|
8
8
|
register_gettext
|
9
9
|
|
10
10
|
sub_menu :top_menu, :content_menu, :caption => N_('Content'),
|
@@ -512,6 +512,12 @@ Foreman::Plugin.register :katello do
|
|
512
512
|
description: N_("Default download policy for Smart Proxy syncs (either 'inherit', immediate', or 'on_demand')"),
|
513
513
|
collection: proxy_download_policies
|
514
514
|
|
515
|
+
setting 'validate_host_lce_content_source_coherence',
|
516
|
+
type: :boolean,
|
517
|
+
default: true,
|
518
|
+
full_name: N_('Validate host/lifecycle environment/content source coherence'),
|
519
|
+
description: N_("Validate that a host's assigned lifecycle environment is synced by the smart proxy from which the host will get its content. Applies only to API requests; does not affect web UI checks")
|
520
|
+
|
515
521
|
setting 'pulpcore_export_destination',
|
516
522
|
type: :string,
|
517
523
|
default: "/var/lib/pulp/exports",
|
@@ -578,7 +584,7 @@ Foreman::Plugin.register :katello do
|
|
578
584
|
type: :integer,
|
579
585
|
default: 120,
|
580
586
|
full_name: N_('Expire soon days'),
|
581
|
-
description: N_('The number of days remaining in a subscription before you will be reminded about renewing it.')
|
587
|
+
description: N_('The number of days remaining in a subscription before you will be reminded about renewing it. Also used for manifest expiration warnings.')
|
582
588
|
|
583
589
|
setting 'host_dmi_uuid_duplicates',
|
584
590
|
type: :array,
|
@@ -622,12 +628,6 @@ Foreman::Plugin.register :katello do
|
|
622
628
|
full_name: N_('Pulp bulk load size'),
|
623
629
|
description: N_('The number of items fetched from a single paged Pulp API call.')
|
624
630
|
|
625
|
-
setting 'upload_profiles_without_dynflow',
|
626
|
-
type: :boolean,
|
627
|
-
default: true,
|
628
|
-
full_name: N_('Upload profiles without Dynflow'),
|
629
|
-
description: N_('Allow Katello to update host installed packages, enabled repos, and module inventory directly instead of wrapped in Dynflow tasks (try turning off if Puma processes are using too much memory)')
|
630
|
-
|
631
631
|
setting 'orphan_protection_time',
|
632
632
|
type: :integer,
|
633
633
|
default: 1440,
|
@@ -669,6 +669,7 @@ Foreman::Plugin.register :katello do
|
|
669
669
|
RemoteExecutionFeature.register(:katello_service_restart, N_("Katello: Service Restart"), :description => N_("Restart Services via Katello interface"), :provided_inputs => ['helpers'])
|
670
670
|
RemoteExecutionFeature.register(:katello_host_tracer_resolve, N_("Katello: Resolve Traces"), :description => N_("Resolve traces via Katello interface"), :provided_inputs => ['ids'])
|
671
671
|
RemoteExecutionFeature.register(:katello_change_content_source, N_("Katello: Configure host for new content source"), :description => N_("Replace content source on the target machine"), :provided_inputs => [])
|
672
|
+
RemoteExecutionFeature.register(:katello_upload_profile, N_("Katello: Upload Profile"), :description => N_("Upload package / repos profile"), :provided_inputs => [])
|
672
673
|
RemoteExecutionFeature.register(:katello_module_stream_action, N_("Katello: Module Stream Actions"),
|
673
674
|
:description => N_("Perform a module stream action via Katello interface"),
|
674
675
|
:provided_inputs => ['action', 'module_spec', 'options'])
|
@@ -18,6 +18,12 @@ Katello::RepositoryTypeManager.register('ostree') do
|
|
18
18
|
distribution_class PulpOstreeClient::OstreeOstreeDistribution
|
19
19
|
repo_sync_url_class PulpOstreeClient::RepositorySyncURL
|
20
20
|
|
21
|
+
generic_remote_option :include_refs, title: N_("Include Refs"), type: Array, input_type: "text", delimiter: ",", default: [],
|
22
|
+
description: N_("A comma-separated list of refs to include during a sync. The wildcards *, ? are recognized.")
|
23
|
+
|
24
|
+
generic_remote_option :exclude_refs, title: N_("Exclude Refs"), type: Array, input_type: "text", delimiter: ",", default: [],
|
25
|
+
description: N_("A comma-separated list of tags to exclude during a sync. The wildcards *, ? are recognized. 'exclude_refs' is evaluated after 'include_refs'.")
|
26
|
+
|
21
27
|
url_description N_("URL of an OSTree repository.")
|
22
28
|
|
23
29
|
generic_content_type 'ostree_ref',
|
@@ -47,4 +53,5 @@ Katello::RepositoryTypeManager.register('ostree') do
|
|
47
53
|
default_managed_content_type :ostree_ref
|
48
54
|
|
49
55
|
test_url 'https://fixtures.pulpproject.org/ostree/small/'
|
56
|
+
test_url_root_options generic_remote_options: {include_refs: ['rawhide']}.to_json
|
50
57
|
end
|
@@ -1,6 +1,12 @@
|
|
1
1
|
# First, we check if there's a job already enqueued for any notifications
|
2
2
|
::Foreman::Application.dynflow.config.on_init do |world|
|
3
|
-
[
|
3
|
+
[
|
4
|
+
CreateExpiredManifestNotifications,
|
5
|
+
CreateHostLifecycleExpireSoonNotifications,
|
6
|
+
CreatePulpDiskSpaceNotifications,
|
7
|
+
SendExpireSoonNotifications,
|
8
|
+
CreateManifestExpireSoonWarningNotifications
|
9
|
+
].each do |job_class|
|
4
10
|
job_class.spawn_if_missing(world)
|
5
11
|
end
|
6
12
|
end
|
@@ -75,7 +75,7 @@ namespace :katello do
|
|
75
75
|
print "The following changes will not actually be performed. Rerun with COMMIT=true to apply the changes\n"
|
76
76
|
end
|
77
77
|
|
78
|
-
SETTINGS[:katello][:candlepin][:bulk_load_size] =
|
78
|
+
SETTINGS[:katello][:candlepin][:bulk_load_size] = 125
|
79
79
|
User.current = User.anonymous_admin
|
80
80
|
cleaner = BackendCleaner.new
|
81
81
|
cleaner.populate!
|
@@ -71,6 +71,12 @@ namespace :katello do
|
|
71
71
|
end
|
72
72
|
end
|
73
73
|
|
74
|
+
desc "Re-import all container manifests to populate labels and annotations."
|
75
|
+
task :import_container_manifest_labels => ["dynflow:client", "check_ping"] do
|
76
|
+
User.current = User.anonymous_api_admin
|
77
|
+
handle_manifest_label_updates
|
78
|
+
end
|
79
|
+
|
74
80
|
def lookup_repositories
|
75
81
|
lifecycle_envs = Katello::KTEnvironment.where(:name => ENV['LIFECYCLE_ENVIRONMENT']) if ENV['LIFECYCLE_ENVIRONMENT']
|
76
82
|
content_views = Katello::ContentView.where(:name => ENV['CONTENT_VIEW']) if ENV['CONTENT_VIEW']
|
@@ -108,6 +114,22 @@ namespace :katello do
|
|
108
114
|
end
|
109
115
|
end
|
110
116
|
|
117
|
+
def handle_manifest_label_updates
|
118
|
+
batch_size = 1000
|
119
|
+
Katello::DockerManifest.
|
120
|
+
where(schema_version: 2).
|
121
|
+
where(annotations: {}, labels: {}).
|
122
|
+
where(is_bootable: false, is_flatpak: false).
|
123
|
+
find_in_batches(batch_size: batch_size) do |group|
|
124
|
+
manifest_unit_ids = group.pluck(:pulp_id)
|
125
|
+
index_service = Katello::ContentUnitIndexer.new(
|
126
|
+
content_type: Katello::RepositoryTypeManager.find_content_type("docker_manifest"),
|
127
|
+
pulp_content_ids: manifest_unit_ids
|
128
|
+
)
|
129
|
+
index_service.reimport_units
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
111
133
|
def handle_missing_root_repo(root_repo)
|
112
134
|
root_repo.destroy! if commit?
|
113
135
|
end
|
data/lib/katello/version.rb
CHANGED
data/locale/action_names.rb
CHANGED
@@ -4,7 +4,6 @@ _("Abstract")
|
|
4
4
|
_("Attach subscriptions")
|
5
5
|
_("Auto attach subscriptions")
|
6
6
|
_("Bulk generate applicability for hosts")
|
7
|
-
_("Combined Profile Update")
|
8
7
|
_("Copy version units to library")
|
9
8
|
_("Create Alternate Content Source")
|
10
9
|
_("Create Export History")
|
@@ -48,7 +47,7 @@ _("Index errata")
|
|
48
47
|
_("Index module streams")
|
49
48
|
_("Index package groups")
|
50
49
|
_("Instance update")
|
51
|
-
_("
|
50
|
+
_("Metadata generate")
|
52
51
|
_("Product Create")
|
53
52
|
_("Promote")
|
54
53
|
_("Promotion to Environment")
|
@@ -72,7 +71,7 @@ _("Update CDN Configuration")
|
|
72
71
|
_("Update Content Counts")
|
73
72
|
_("Update Content Overrides")
|
74
73
|
_("Update content urls")
|
75
|
-
_("Update for host")
|
74
|
+
_("Update content view environments for host")
|
76
75
|
_("Update http proxy details")
|
77
76
|
_("Update http proxy")
|
78
77
|
_("Update redhat repository")
|
@@ -86,4 +85,6 @@ _("Update")
|
|
86
85
|
_("Updating System Purpose for host")
|
87
86
|
_("Upload into")
|
88
87
|
_("Upload into")
|
88
|
+
_("Verify checksum for content on smart proxy")
|
89
|
+
_("Verify checksum of version repositories")
|
89
90
|
_("Verify checksum")
|