katello 4.11.0 → 4.11.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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/locale/bn/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/bn_IN/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/ca/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/cs/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +20 -14
- data/app/assets/javascripts/katello/locale/de/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/de_AT/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/de_DE/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/el/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/en/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/en_GB/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/en_US/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/es/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/et_EE/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/fr/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/gl/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/gu/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/he_IL/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/hi/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/id/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/it/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/ja/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/ka/katello.js +27 -15
- data/app/assets/javascripts/katello/locale/kn/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/ko/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/locale/katello.js +319 -187
- data/app/assets/javascripts/katello/locale/ml_IN/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/mr/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/nl_NL/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/or/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/pa/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/pl/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/pl_PL/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/pt/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/pt_BR/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/ro/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/ro_RO/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/ru/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/sl/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/sv_SE/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/ta/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/ta_IN/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/te/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/tr/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/vi/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/vi_VN/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/zh/katello.js +17 -14
- data/app/assets/javascripts/katello/locale/zh_CN/katello.js +31 -16
- data/app/assets/javascripts/katello/locale/zh_TW/katello.js +31 -16
- data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +1 -0
- data/app/lib/actions/katello/content_view/incremental_updates.rb +28 -15
- data/app/lib/actions/pulp3/repository/save_version.rb +13 -1
- data/app/models/katello/concerns/host_managed_extensions.rb +9 -7
- data/app/models/katello/concerns/smart_proxy_extensions.rb +5 -5
- data/app/models/katello/content_view_module_stream_filter.rb +1 -1
- data/app/models/katello/glue/candlepin/pool.rb +2 -7
- data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +4 -4
- data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +24 -0
- data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +28 -0
- data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +26 -0
- data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +33 -0
- data/app/views/overrides/activation_keys/_host_tab_pane.html.erb +4 -2
- data/app/views/overrides/organizations/_edit_override.html.erb +2 -1
- data/db/migrate/20240122150431_remove_content_counts_index.rb +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +1 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +10 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +332 -71
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +332 -64
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +508 -232
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +361 -90
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +311 -57
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +336 -68
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +332 -64
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +343 -73
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +8 -8
- data/lib/katello/version.rb +1 -1
- data/locale/bn/katello.po +16 -13
- data/locale/bn_IN/katello.po +16 -13
- data/locale/ca/katello.po +16 -13
- data/locale/cs/katello.po +16 -13
- data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs_CZ/katello.po +16 -13
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +17 -14
- data/locale/de_AT/katello.po +16 -13
- data/locale/de_DE/katello.po +16 -13
- data/locale/el/katello.po +16 -13
- data/locale/en/katello.po +16 -13
- data/locale/en_GB/katello.po +16 -13
- data/locale/en_US/katello.po +16 -13
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +17 -14
- data/locale/et_EE/katello.po +16 -13
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +17 -14
- data/locale/gl/katello.po +16 -13
- data/locale/gu/katello.po +16 -13
- data/locale/he_IL/katello.po +16 -13
- data/locale/hi/katello.po +16 -13
- data/locale/id/katello.po +16 -13
- data/locale/it/katello.po +16 -13
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +17 -14
- data/locale/ka/LC_MESSAGES/katello.mo +0 -0
- data/locale/ka/katello.po +16 -13
- data/locale/katello.pot +388 -370
- data/locale/kn/katello.po +16 -13
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +17 -14
- data/locale/ml_IN/katello.po +16 -13
- data/locale/mr/katello.po +16 -13
- data/locale/nl_NL/katello.po +16 -13
- data/locale/or/katello.po +16 -13
- data/locale/pa/katello.po +16 -13
- data/locale/pl/katello.po +16 -13
- data/locale/pl_PL/katello.po +16 -13
- data/locale/pt/katello.po +16 -13
- data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt_BR/katello.po +17 -14
- data/locale/ro/katello.po +16 -13
- data/locale/ro_RO/katello.po +16 -13
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +17 -14
- data/locale/sl/katello.po +16 -13
- data/locale/sv_SE/katello.po +16 -13
- data/locale/ta/katello.po +16 -13
- data/locale/ta_IN/katello.po +16 -13
- data/locale/te/katello.po +16 -13
- data/locale/tr/katello.po +16 -13
- data/locale/vi/katello.po +16 -13
- data/locale/vi_VN/katello.po +16 -13
- data/locale/zh/katello.po +16 -13
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +17 -14
- data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_TW/katello.po +17 -14
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +6 -5
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +1 -1
- data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +3 -1
- data/webpack/components/extensions/RegistrationCommands/index.js +9 -0
- data/webpack/redux/actions/RedHatRepositories/helpers.js +3 -3
- data/webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js +1 -1
- metadata +7 -50
- data/locale/bn/katello.po.time_stamp +0 -0
- data/locale/bn_IN/katello.po.time_stamp +0 -0
- data/locale/ca/katello.po.time_stamp +0 -0
- data/locale/cs/katello.po.time_stamp +0 -0
- data/locale/cs_CZ/katello.po.time_stamp +0 -0
- data/locale/de/katello.po.time_stamp +0 -0
- data/locale/de_AT/katello.po.time_stamp +0 -0
- data/locale/de_DE/katello.po.time_stamp +0 -0
- data/locale/el/katello.po.time_stamp +0 -0
- data/locale/en/katello.po.time_stamp +0 -0
- data/locale/en_GB/katello.po.time_stamp +0 -0
- data/locale/en_US/katello.po.time_stamp +0 -0
- data/locale/es/katello.po.time_stamp +0 -0
- data/locale/et_EE/katello.po.time_stamp +0 -0
- data/locale/fr/katello.po.time_stamp +0 -0
- data/locale/gl/katello.po.time_stamp +0 -0
- data/locale/gu/katello.po.time_stamp +0 -0
- data/locale/he_IL/katello.po.time_stamp +0 -0
- data/locale/hi/katello.po.time_stamp +0 -0
- data/locale/id/katello.po.time_stamp +0 -0
- data/locale/it/katello.po.time_stamp +0 -0
- data/locale/ja/katello.po.time_stamp +0 -0
- data/locale/ka/katello.po.time_stamp +0 -0
- data/locale/kn/katello.po.time_stamp +0 -0
- data/locale/ko/katello.po.time_stamp +0 -0
- data/locale/ml_IN/katello.po.time_stamp +0 -0
- data/locale/mr/katello.po.time_stamp +0 -0
- data/locale/nl_NL/katello.po.time_stamp +0 -0
- data/locale/or/katello.po.time_stamp +0 -0
- data/locale/pa/katello.po.time_stamp +0 -0
- data/locale/pl/katello.po.time_stamp +0 -0
- data/locale/pl_PL/katello.po.time_stamp +0 -0
- data/locale/pt/katello.po.time_stamp +0 -0
- data/locale/pt_BR/katello.po.time_stamp +0 -0
- data/locale/ro/katello.po.time_stamp +0 -0
- data/locale/ro_RO/katello.po.time_stamp +0 -0
- data/locale/ru/katello.po.time_stamp +0 -0
- data/locale/sl/katello.po.time_stamp +0 -0
- data/locale/sv_SE/katello.po.time_stamp +0 -0
- data/locale/ta/katello.po.time_stamp +0 -0
- data/locale/ta_IN/katello.po.time_stamp +0 -0
- data/locale/te/katello.po.time_stamp +0 -0
- data/locale/tr/katello.po.time_stamp +0 -0
- data/locale/vi/katello.po.time_stamp +0 -0
- data/locale/vi_VN/katello.po.time_stamp +0 -0
- data/locale/zh/katello.po.time_stamp +0 -0
- data/locale/zh_CN/katello.po.time_stamp +0 -0
- data/locale/zh_TW/katello.po.time_stamp +0 -0
@@ -2278,9 +2278,6 @@
|
|
2278
2278
|
"Sync a repository": [
|
2279
2279
|
""
|
2280
2280
|
],
|
2281
|
-
"temporarily override feed URL for sync": [
|
2282
|
-
""
|
2283
|
-
],
|
2284
2281
|
"perform an incremental import": [
|
2285
2282
|
""
|
2286
2283
|
],
|
@@ -2290,7 +2287,7 @@
|
|
2290
2287
|
"Force a sync and validate the checksums of all content. Only used with yum repositories.": [
|
2291
2288
|
""
|
2292
2289
|
],
|
2293
|
-
"
|
2290
|
+
"attempted to sync a non-library repository.": [
|
2294
2291
|
""
|
2295
2292
|
],
|
2296
2293
|
"attempted to sync without a feed URL": [
|
@@ -2461,6 +2458,9 @@
|
|
2461
2458
|
"Check if the specified organization is eligible for Simple Content Access. %s": [
|
2462
2459
|
""
|
2463
2460
|
],
|
2461
|
+
"This endpoint is deprecated and will be removed in Katello 4.12. All organizations are now eligible for Simple Content Access.": [
|
2462
|
+
""
|
2463
|
+
],
|
2464
2464
|
"Check if the specified organization has Simple Content Access enabled. %s": [
|
2465
2465
|
""
|
2466
2466
|
],
|
@@ -2710,12 +2710,6 @@
|
|
2710
2710
|
"Sending a list of included IDs is not allowed when all items are being selected.": [
|
2711
2711
|
""
|
2712
2712
|
],
|
2713
|
-
"No hosts have been specified.": [
|
2714
|
-
""
|
2715
|
-
],
|
2716
|
-
"No hosts matched search, or action unauthorized for selected hosts.": [
|
2717
|
-
""
|
2718
|
-
],
|
2719
2713
|
"Value must either be a boolean or 'default' for 'enabled'": [
|
2720
2714
|
""
|
2721
2715
|
],
|
@@ -2734,6 +2728,9 @@
|
|
2734
2728
|
"Kickstart repository ID": [
|
2735
2729
|
""
|
2736
2730
|
],
|
2731
|
+
"Deleted %{host_count} %{hosts}": [
|
2732
|
+
""
|
2733
|
+
],
|
2737
2734
|
"Alter a host's host collections": [
|
2738
2735
|
""
|
2739
2736
|
],
|
@@ -2893,6 +2890,9 @@
|
|
2893
2890
|
"Organization %s is being deleted.": [
|
2894
2891
|
""
|
2895
2892
|
],
|
2893
|
+
"Simple Content Access will be required for all organizations in Katello 4.12.": [
|
2894
|
+
""
|
2895
|
+
],
|
2896
2896
|
"Error connecting. Got: %s": [
|
2897
2897
|
""
|
2898
2898
|
],
|
@@ -3325,6 +3325,9 @@
|
|
3325
3325
|
"Cannot skip metadata check on non-yum/deb repositories.": [
|
3326
3326
|
""
|
3327
3327
|
],
|
3328
|
+
"Unable to sync repo. This repository is not a library instance repository.": [
|
3329
|
+
""
|
3330
|
+
],
|
3328
3331
|
"Disable": [
|
3329
3332
|
""
|
3330
3333
|
],
|
@@ -4633,7 +4636,7 @@
|
|
4633
4636
|
"Repository has already been cloned to %{cv_name} in environment %{to_env}": [
|
4634
4637
|
""
|
4635
4638
|
],
|
4636
|
-
"Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it.": [
|
4639
|
+
"Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it or use --remove-from-content-view-versions flag to automatically remove the repository from all published versions.": [
|
4637
4640
|
""
|
4638
4641
|
],
|
4639
4642
|
"This is not a linked repository": [
|
@@ -5375,9 +5378,6 @@
|
|
5375
5378
|
"Generate and Download": [
|
5376
5379
|
""
|
5377
5380
|
],
|
5378
|
-
"Simple Content Access will be required for all organizations in Katello 4.12.": [
|
5379
|
-
""
|
5380
|
-
],
|
5381
5381
|
"Alternate Content Source HTTP Proxy": [
|
5382
5382
|
""
|
5383
5383
|
],
|
@@ -8505,6 +8505,9 @@
|
|
8505
8505
|
"No repositories enabled.": [
|
8506
8506
|
""
|
8507
8507
|
],
|
8508
|
+
"Debian packages": [
|
8509
|
+
""
|
8510
|
+
],
|
8508
8511
|
"Synced": [
|
8509
8512
|
""
|
8510
8513
|
],
|
@@ -2279,9 +2279,6 @@
|
|
2279
2279
|
"Sync a repository": [
|
2280
2280
|
"同步軟體庫"
|
2281
2281
|
],
|
2282
|
-
"temporarily override feed URL for sync": [
|
2283
|
-
"临时覆盖 feed 网址以进行同步"
|
2284
|
-
],
|
2285
2282
|
"perform an incremental import": [
|
2286
2283
|
"执行增量导入"
|
2287
2284
|
],
|
@@ -2291,8 +2288,8 @@
|
|
2291
2288
|
"Force a sync and validate the checksums of all content. Only used with yum repositories.": [
|
2292
2289
|
"强制一个同步并验证所有内容的 checksums。仅用于yum仓库。"
|
2293
2290
|
],
|
2294
|
-
"
|
2295
|
-
"
|
2291
|
+
"attempted to sync a non-library repository.": [
|
2292
|
+
""
|
2296
2293
|
],
|
2297
2294
|
"attempted to sync without a feed URL": [
|
2298
2295
|
"尝试在没有 Feed URL 的情况下进行同步"
|
@@ -2462,6 +2459,9 @@
|
|
2462
2459
|
"Check if the specified organization is eligible for Simple Content Access. %s": [
|
2463
2460
|
""
|
2464
2461
|
],
|
2462
|
+
"This endpoint is deprecated and will be removed in Katello 4.12. All organizations are now eligible for Simple Content Access.": [
|
2463
|
+
""
|
2464
|
+
],
|
2465
2465
|
"Check if the specified organization has Simple Content Access enabled. %s": [
|
2466
2466
|
""
|
2467
2467
|
],
|
@@ -2711,12 +2711,6 @@
|
|
2711
2711
|
"Sending a list of included IDs is not allowed when all items are being selected.": [
|
2712
2712
|
"当选择所有项目时,不允许发送包含 ID 的列表。"
|
2713
2713
|
],
|
2714
|
-
"No hosts have been specified.": [
|
2715
|
-
"没有指定主机。"
|
2716
|
-
],
|
2717
|
-
"No hosts matched search, or action unauthorized for selected hosts.": [
|
2718
|
-
""
|
2719
|
-
],
|
2720
2714
|
"Value must either be a boolean or 'default' for 'enabled'": [
|
2721
2715
|
"值需要是一个布尔值,或 'default' 代表 'enabled'"
|
2722
2716
|
],
|
@@ -2735,6 +2729,9 @@
|
|
2735
2729
|
"Kickstart repository ID": [
|
2736
2730
|
"Kickstart 仓库 ID"
|
2737
2731
|
],
|
2732
|
+
"Deleted %{host_count} %{hosts}": [
|
2733
|
+
""
|
2734
|
+
],
|
2738
2735
|
"Alter a host's host collections": [
|
2739
2736
|
"更改主机的主机集合"
|
2740
2737
|
],
|
@@ -2894,6 +2891,9 @@
|
|
2894
2891
|
"Organization %s is being deleted.": [
|
2895
2892
|
"机构 %s 已被删除。"
|
2896
2893
|
],
|
2894
|
+
"Simple Content Access will be required for all organizations in Katello 4.12.": [
|
2895
|
+
""
|
2896
|
+
],
|
2897
2897
|
"Error connecting. Got: %s": [
|
2898
2898
|
"连接错误。获得:%s"
|
2899
2899
|
],
|
@@ -3326,6 +3326,9 @@
|
|
3326
3326
|
"Cannot skip metadata check on non-yum/deb repositories.": [
|
3327
3327
|
""
|
3328
3328
|
],
|
3329
|
+
"Unable to sync repo. This repository is not a library instance repository.": [
|
3330
|
+
""
|
3331
|
+
],
|
3329
3332
|
"Disable": [
|
3330
3333
|
"禁用"
|
3331
3334
|
],
|
@@ -4634,8 +4637,8 @@
|
|
4634
4637
|
"Repository has already been cloned to %{cv_name} in environment %{to_env}": [
|
4635
4638
|
"仓库已被克隆到环境 %{to_env} 中的 %{cv_name}"
|
4636
4639
|
],
|
4637
|
-
"Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it.": [
|
4638
|
-
"
|
4640
|
+
"Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it or use --remove-from-content-view-versions flag to automatically remove the repository from all published versions.": [
|
4641
|
+
""
|
4639
4642
|
],
|
4640
4643
|
"This is not a linked repository": [
|
4641
4644
|
"没有连接的仓库"
|
@@ -5375,9 +5378,6 @@
|
|
5375
5378
|
"Generate and Download": [
|
5376
5379
|
"生成并下载"
|
5377
5380
|
],
|
5378
|
-
"Simple Content Access will be required for all organizations in Katello 4.12.": [
|
5379
|
-
""
|
5380
|
-
],
|
5381
5381
|
"Alternate Content Source HTTP Proxy": [
|
5382
5382
|
"备用内容源 HTTP 代理"
|
5383
5383
|
],
|
@@ -8504,6 +8504,9 @@
|
|
8504
8504
|
"No repositories enabled.": [
|
8505
8505
|
"没有启用的仓库。"
|
8506
8506
|
],
|
8507
|
+
"Debian packages": [
|
8508
|
+
""
|
8509
|
+
],
|
8507
8510
|
"Synced": [
|
8508
8511
|
""
|
8509
8512
|
],
|
@@ -8998,6 +9001,18 @@
|
|
8998
9001
|
],
|
8999
9002
|
"Verify checksum": [
|
9000
9003
|
"验证校验和"
|
9004
|
+
],
|
9005
|
+
"No hosts have been specified.": [
|
9006
|
+
"没有指定主机。"
|
9007
|
+
],
|
9008
|
+
"#~ \"Repository cannot be deleted since it has already been included in a published\"#~ \" Content View. Please delete all Content View versions containing this reposit\"#~ \"ory before attempting to delete it.\"": [
|
9009
|
+
"因为已包含在已发布的“内容视图”中,因此无法删除仓库。在尝试删除它之前,删除包含该仓库的所有内容视图版本。"
|
9010
|
+
],
|
9011
|
+
"source URL is malformed": [
|
9012
|
+
"来源 URL 格式错误"
|
9013
|
+
],
|
9014
|
+
"temporarily override feed URL for sync": [
|
9015
|
+
"临时覆盖 feed 网址以进行同步"
|
9001
9016
|
]
|
9002
9017
|
}
|
9003
9018
|
}
|
@@ -2279,9 +2279,6 @@
|
|
2279
2279
|
"Sync a repository": [
|
2280
2280
|
"同步軟體庫"
|
2281
2281
|
],
|
2282
|
-
"temporarily override feed URL for sync": [
|
2283
|
-
"暫時覆寫同步的 feed URL"
|
2284
|
-
],
|
2285
2282
|
"perform an incremental import": [
|
2286
2283
|
"進行累進匯入"
|
2287
2284
|
],
|
@@ -2291,8 +2288,8 @@
|
|
2291
2288
|
"Force a sync and validate the checksums of all content. Only used with yum repositories.": [
|
2292
2289
|
""
|
2293
2290
|
],
|
2294
|
-
"
|
2295
|
-
"
|
2291
|
+
"attempted to sync a non-library repository.": [
|
2292
|
+
""
|
2296
2293
|
],
|
2297
2294
|
"attempted to sync without a feed URL": [
|
2298
2295
|
"試圖在沒有 feed URL 的情況下同步"
|
@@ -2462,6 +2459,9 @@
|
|
2462
2459
|
"Check if the specified organization is eligible for Simple Content Access. %s": [
|
2463
2460
|
""
|
2464
2461
|
],
|
2462
|
+
"This endpoint is deprecated and will be removed in Katello 4.12. All organizations are now eligible for Simple Content Access.": [
|
2463
|
+
""
|
2464
|
+
],
|
2465
2465
|
"Check if the specified organization has Simple Content Access enabled. %s": [
|
2466
2466
|
""
|
2467
2467
|
],
|
@@ -2711,12 +2711,6 @@
|
|
2711
2711
|
"Sending a list of included IDs is not allowed when all items are being selected.": [
|
2712
2712
|
""
|
2713
2713
|
],
|
2714
|
-
"No hosts have been specified.": [
|
2715
|
-
"未指定主機。"
|
2716
|
-
],
|
2717
|
-
"No hosts matched search, or action unauthorized for selected hosts.": [
|
2718
|
-
""
|
2719
|
-
],
|
2720
2714
|
"Value must either be a boolean or 'default' for 'enabled'": [
|
2721
2715
|
""
|
2722
2716
|
],
|
@@ -2735,6 +2729,9 @@
|
|
2735
2729
|
"Kickstart repository ID": [
|
2736
2730
|
""
|
2737
2731
|
],
|
2732
|
+
"Deleted %{host_count} %{hosts}": [
|
2733
|
+
""
|
2734
|
+
],
|
2738
2735
|
"Alter a host's host collections": [
|
2739
2736
|
""
|
2740
2737
|
],
|
@@ -2894,6 +2891,9 @@
|
|
2894
2891
|
"Organization %s is being deleted.": [
|
2895
2892
|
"組織 %s 已被刪除。"
|
2896
2893
|
],
|
2894
|
+
"Simple Content Access will be required for all organizations in Katello 4.12.": [
|
2895
|
+
""
|
2896
|
+
],
|
2897
2897
|
"Error connecting. Got: %s": [
|
2898
2898
|
"連線錯誤。收到:%s"
|
2899
2899
|
],
|
@@ -3326,6 +3326,9 @@
|
|
3326
3326
|
"Cannot skip metadata check on non-yum/deb repositories.": [
|
3327
3327
|
""
|
3328
3328
|
],
|
3329
|
+
"Unable to sync repo. This repository is not a library instance repository.": [
|
3330
|
+
""
|
3331
|
+
],
|
3329
3332
|
"Disable": [
|
3330
3333
|
"停用"
|
3331
3334
|
],
|
@@ -4634,8 +4637,8 @@
|
|
4634
4637
|
"Repository has already been cloned to %{cv_name} in environment %{to_env}": [
|
4635
4638
|
"軟體庫已經複製給 %{cv_name} 於環境 %{to_env} 中"
|
4636
4639
|
],
|
4637
|
-
"Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it.": [
|
4638
|
-
"
|
4640
|
+
"Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it or use --remove-from-content-view-versions flag to automatically remove the repository from all published versions.": [
|
4641
|
+
""
|
4639
4642
|
],
|
4640
4643
|
"This is not a linked repository": [
|
4641
4644
|
""
|
@@ -5376,9 +5379,6 @@
|
|
5376
5379
|
"Generate and Download": [
|
5377
5380
|
"產生與下載"
|
5378
5381
|
],
|
5379
|
-
"Simple Content Access will be required for all organizations in Katello 4.12.": [
|
5380
|
-
""
|
5381
|
-
],
|
5382
5382
|
"Alternate Content Source HTTP Proxy": [
|
5383
5383
|
""
|
5384
5384
|
],
|
@@ -8505,6 +8505,9 @@
|
|
8505
8505
|
"No repositories enabled.": [
|
8506
8506
|
""
|
8507
8507
|
],
|
8508
|
+
"Debian packages": [
|
8509
|
+
""
|
8510
|
+
],
|
8508
8511
|
"Synced": [
|
8509
8512
|
""
|
8510
8513
|
],
|
@@ -8999,6 +9002,18 @@
|
|
8999
9002
|
],
|
9000
9003
|
"Verify checksum": [
|
9001
9004
|
""
|
9005
|
+
],
|
9006
|
+
"No hosts have been specified.": [
|
9007
|
+
"未指定主機。"
|
9008
|
+
],
|
9009
|
+
"#~ \"Repository cannot be deleted since it has already been included in a published\"#~ \" Content View. Please delete all Content View versions containing this reposit\"#~ \"ory before attempting to delete it.\"": [
|
9010
|
+
"無法刪除軟體庫,因為它已被包含在一個已發佈的內容視域中。請在嘗試刪除此軟體庫之前,刪除所有包含了此軟體庫的內容視域版本。"
|
9011
|
+
],
|
9012
|
+
"source URL is malformed": [
|
9013
|
+
"來源 URL 格式錯誤"
|
9014
|
+
],
|
9015
|
+
"temporarily override feed URL for sync": [
|
9016
|
+
"暫時覆寫同步的 feed URL"
|
9002
9017
|
]
|
9003
9018
|
}
|
9004
9019
|
}
|
@@ -4,28 +4,41 @@ module Actions
|
|
4
4
|
class IncrementalUpdates < Actions::EntryAction
|
5
5
|
include Helpers::Presenter
|
6
6
|
|
7
|
+
def version_environments_by_cv_id(version_environments)
|
8
|
+
by_content_view = {}
|
9
|
+
version_environments.each do |version_environment|
|
10
|
+
by_content_view[version_environment[:content_view_version].content_view.id] ||= []
|
11
|
+
by_content_view[version_environment[:content_view_version].content_view.id] << version_environment
|
12
|
+
end
|
13
|
+
by_content_view
|
14
|
+
end
|
15
|
+
|
7
16
|
def plan(version_environments, composite_version_environments, content, dep_solve, hosts, description)
|
8
17
|
old_new_version_map = {}
|
9
18
|
output_for_version_ids = []
|
10
19
|
|
11
20
|
sequence do
|
12
21
|
concurrence do
|
13
|
-
version_environments.
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
22
|
+
version_environments_by_cv_id(version_environments).each_value do |version_environments_for_cv|
|
23
|
+
sequence do
|
24
|
+
version_environments_for_cv.each do |version_environment|
|
25
|
+
version = version_environment[:content_view_version]
|
26
|
+
if version.content_view.generated?
|
27
|
+
fail _("Cannot perform an incremental update on a Generated Content View Version (%{name} version version %{version}") %
|
28
|
+
{:name => version.content_view.name, :version => version.version}
|
29
|
+
end
|
30
|
+
|
31
|
+
if version.content_view.composite?
|
32
|
+
fail _("Cannot perform an incremental update on a Composite Content View Version (%{name} version version %{version}") %
|
33
|
+
{:name => version.content_view.name, :version => version.version}
|
34
|
+
end
|
35
|
+
|
36
|
+
action = plan_action(ContentViewVersion::IncrementalUpdate, version,
|
37
|
+
version_environment[:environments], :resolve_dependencies => dep_solve, :content => content, :description => description)
|
38
|
+
old_new_version_map[version] = action.new_content_view_version
|
39
|
+
output_for_version_ids << {:version_id => action.new_content_view_version.id, :output => action.output}
|
40
|
+
end
|
18
41
|
end
|
19
|
-
|
20
|
-
if version.content_view.composite?
|
21
|
-
fail _("Cannot perform an incremental update on a Composite Content View Version (%{name} version version %{version}") %
|
22
|
-
{:name => version.content_view.name, :version => version.version}
|
23
|
-
end
|
24
|
-
|
25
|
-
action = plan_action(ContentViewVersion::IncrementalUpdate, version,
|
26
|
-
version_environment[:environments], :resolve_dependencies => dep_solve, :content => content, :description => description)
|
27
|
-
old_new_version_map[version] = action.new_content_view_version
|
28
|
-
output_for_version_ids << {:version_id => action.new_content_view_version.id, :output => action.output}
|
29
42
|
end
|
30
43
|
end
|
31
44
|
|
@@ -34,7 +34,12 @@ module Actions
|
|
34
34
|
repo.update(:version_href => version_href)
|
35
35
|
end
|
36
36
|
else
|
37
|
-
|
37
|
+
# get publication and check if repo-version and publication match. Otherwise, contents_changed: false
|
38
|
+
if !repo.repository_type.pulp3_skip_publication && fetch_current_published_version_href(repo) != repo.version_href
|
39
|
+
output[:contents_changed] = true
|
40
|
+
else
|
41
|
+
output[:contents_changed] = false
|
42
|
+
end
|
38
43
|
end
|
39
44
|
end
|
40
45
|
|
@@ -44,6 +49,13 @@ module Actions
|
|
44
49
|
repo_href = repo_backend_service.repository_reference.repository_href
|
45
50
|
repo_backend_service.api.repositories_api.read(repo_href).latest_version_href
|
46
51
|
end
|
52
|
+
|
53
|
+
def fetch_current_published_version_href(repo)
|
54
|
+
# Fetch latest Pulp 3 repo version
|
55
|
+
return nil if repo.publication_href.nil?
|
56
|
+
repo_backend_service = repo.backend_service(SmartProxy.pulp_primary)
|
57
|
+
repo_backend_service.api.publications_api.read(repo.publication_href).repository_version
|
58
|
+
end
|
47
59
|
end
|
48
60
|
end
|
49
61
|
end
|
@@ -219,6 +219,8 @@ module Katello
|
|
219
219
|
if !new_record? && !build && self.changes.key?('build')
|
220
220
|
queue.create(id: "refresh_content_host_status_#{id}", name: _("Refresh Content Host Statuses for %s") % self,
|
221
221
|
priority: 300, action: [self, :refresh_content_host_status])
|
222
|
+
else
|
223
|
+
true
|
222
224
|
end
|
223
225
|
end
|
224
226
|
|
@@ -230,14 +232,14 @@ module Katello
|
|
230
232
|
true
|
231
233
|
end
|
232
234
|
|
233
|
-
def reset_content_host_status
|
234
|
-
logger.debug "Scheduling host status cleanup"
|
235
|
-
queue.create(id: "reset_content_host_status_#{id}", name: _("Mark Content Host Statuses as Unknown for %s") % self,
|
236
|
-
priority: 200, action: [self, :reset_katello_status])
|
237
|
-
end
|
238
|
-
|
239
235
|
def queue_reset_content_host_status
|
240
|
-
should_reset_content_host_status?
|
236
|
+
if should_reset_content_host_status?
|
237
|
+
logger.debug "Scheduling host status cleanup"
|
238
|
+
queue.create(id: "reset_content_host_status_#{id}", name: _("Mark Content Host Statuses as Unknown for %s") % self,
|
239
|
+
priority: 200, action: [self, :reset_katello_status])
|
240
|
+
else
|
241
|
+
true
|
242
|
+
end
|
241
243
|
end
|
242
244
|
|
243
245
|
def should_reset_content_host_status?
|
@@ -436,9 +436,9 @@ module Katello
|
|
436
436
|
|
437
437
|
def last_complete_sync_task
|
438
438
|
ForemanTasks::Task.for_resource(self).where(:label => 'Actions::Katello::CapsuleContent::Sync').order(started_at: :desc).detect do |task|
|
439
|
-
task.input.with_indifferent_access
|
440
|
-
task.input.with_indifferent_access
|
441
|
-
task.input.with_indifferent_access
|
439
|
+
task.input.with_indifferent_access.dig(:options, :environment_id).nil? &&
|
440
|
+
task.input.with_indifferent_access.dig(:options, :content_view_id).nil? &&
|
441
|
+
task.input.with_indifferent_access.dig(:options, :repository_id).nil?
|
442
442
|
end
|
443
443
|
end
|
444
444
|
|
@@ -479,11 +479,11 @@ module Katello
|
|
479
479
|
end
|
480
480
|
|
481
481
|
def last_env_sync_task(env)
|
482
|
-
last_env_sync_task = sync_tasks.order(ended_at: :desc).detect { |task| task.input.with_indifferent_access
|
482
|
+
last_env_sync_task = sync_tasks.order(ended_at: :desc).detect { |task| task.input.with_indifferent_access.dig(:options, :environment_id) == env.id || task.input.with_indifferent_access.dig(:options, :environment_ids)&.include?(env.id) }
|
483
483
|
|
484
484
|
# env_ids_task_exists checks if any full syncs have run since we started tracking env_ids at time of sync.
|
485
485
|
# If yes, return last_env_sync_task which checks for env_id specific sync + full syncs which contain env as part of env_ids
|
486
|
-
env_ids_task_exists = sync_tasks.order(ended_at: :desc).any? { |task| task.input.with_indifferent_access
|
486
|
+
env_ids_task_exists = sync_tasks.order(ended_at: :desc).any? { |task| task.input.with_indifferent_access.dig(:options, :environment_ids) }
|
487
487
|
return last_env_sync_task if env_ids_task_exists
|
488
488
|
|
489
489
|
if (last_complete_sync_task&.ended_at && last_env_sync_task&.ended_at)
|
@@ -29,7 +29,7 @@ module Katello
|
|
29
29
|
if self.original_module_streams
|
30
30
|
module_ids.concat(repo.module_streams_without_errata.map(&:id))
|
31
31
|
end
|
32
|
-
modules_streams = ModuleStream.where(id: module_ids).includes(:rpms)
|
32
|
+
modules_streams = ModuleStream.in_repositories(repo).where(id: module_ids).includes(:rpms)
|
33
33
|
content_unit_ids += modules_streams.pluck(:pulp_id).flatten.uniq
|
34
34
|
if dependents && !modules_streams.empty?
|
35
35
|
rpms = modules_streams.map(&:rpms).flatten
|
@@ -129,7 +129,6 @@ module Katello
|
|
129
129
|
providers.any?
|
130
130
|
end
|
131
131
|
|
132
|
-
# rubocop:disable Metrics/MethodLength,Metrics/AbcSize
|
133
132
|
# rubocop:disable Metrics/CyclomaticComplexity
|
134
133
|
def import_data(index_hosts_and_activation_keys = false)
|
135
134
|
pool_attributes = {}.with_indifferent_access
|
@@ -161,11 +160,7 @@ module Katello
|
|
161
160
|
pool_attributes[:unmapped_guest] = true
|
162
161
|
end
|
163
162
|
|
164
|
-
|
165
|
-
pool_attributes[:virt_who] = pool_attributes['virt_limit'] != "0" && pool_attributes['virt_limit'].present?
|
166
|
-
else
|
167
|
-
pool_attributes[:virt_who] = false
|
168
|
-
end
|
163
|
+
pool_attributes[:virt_who] = (pool_attributes['virt_limit'].present? && pool_attributes['virt_limit'] != "0")
|
169
164
|
|
170
165
|
pool_attributes['stack_id'] = pool_json['stackId']
|
171
166
|
exceptions = pool_attributes.keys.map(&:to_sym) - self.attribute_names.map(&:to_sym)
|
@@ -175,7 +170,7 @@ module Katello
|
|
175
170
|
self.create_product_associations
|
176
171
|
self.import_hosts if index_hosts_and_activation_keys
|
177
172
|
end
|
178
|
-
# rubocop:enable
|
173
|
+
# rubocop:enable
|
179
174
|
|
180
175
|
def create_product_associations
|
181
176
|
products = self.backend_data["providedProducts"] + self.backend_data["derivedProvidedProducts"]
|
@@ -15,9 +15,9 @@ kind: job_template
|
|
15
15
|
%>
|
16
16
|
|
17
17
|
<% if @host.operatingsystem.family == 'Suse' -%>
|
18
|
-
|
19
|
-
|
18
|
+
<% advisories = input(:errata).split(',').join(' ') -%>
|
19
|
+
<%= render_template('Run Command - Ansible Default', :command => "zypper -n install -t patch #{advisories}") %>
|
20
20
|
<% else -%>
|
21
|
-
|
22
|
-
|
21
|
+
<% advisories = input(:errata).split(',').map { |e| "--advisory=#{e}" }.join(' ') -%>
|
22
|
+
<%= render_template('Run Command - Ansible Default', :command => "yum -y update-minimal #{advisories}") %>
|
23
23
|
<% end -%>
|
data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
<%#
|
2
|
+
kind: job_template
|
3
|
+
name: Install errata by search query - Katello Ansible Default
|
4
|
+
job_category: Katello
|
5
|
+
description_format: 'Install errata %{Errata search query}'
|
6
|
+
feature: katello_errata_install_by_search
|
7
|
+
provider_type: Ansible
|
8
|
+
template_inputs:
|
9
|
+
- name: Errata search query
|
10
|
+
description: Filter criteria for errata to be installed.
|
11
|
+
input_type: user
|
12
|
+
required: false
|
13
|
+
%>
|
14
|
+
|
15
|
+
<% advisory_ids = @host.advisory_ids(search: input("Errata search query")) -%>
|
16
|
+
<% render_error(N_("No errata matching given search query")) if !input("Errata search query").blank? && advisory_ids.blank? -%>
|
17
|
+
# RESOLVED_ERRATA_IDS=<%= advisory_ids.join(',') %>
|
18
|
+
|
19
|
+
<% if @host.operatingsystem.family == 'Suse' -%>
|
20
|
+
<%= render_template('Run Command - Ansible Default', :command => "zypper -n install -t patch #{advisory_ids.join(' ')}") %>
|
21
|
+
<% else -%>
|
22
|
+
<% advisories = advisory_ids.map { |e| "--advisory=#{e}" }.join(' ') -%>
|
23
|
+
<%= render_template('Run Command - Ansible Default', :command => "yum -y update-minimal #{advisories}") %>
|
24
|
+
<% end -%>
|
data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
<%#
|
2
|
+
kind: job_template
|
3
|
+
name: Install packages by search query - Katello Ansible Default
|
4
|
+
job_category: Katello
|
5
|
+
description_format: 'Install package(s) %{Package search query}'
|
6
|
+
feature: katello_package_install_by_search
|
7
|
+
provider_type: Ansible
|
8
|
+
template_inputs:
|
9
|
+
- name: Package search query
|
10
|
+
description: Filter criteria for packages to be installed. IMPORTANT- If left blank, the job will attempt to install all possible packages.
|
11
|
+
input_type: user
|
12
|
+
required: false
|
13
|
+
%>
|
14
|
+
<% package_names = @host.package_names_for_job_template(
|
15
|
+
action: 'install',
|
16
|
+
search: input('Package search query')
|
17
|
+
) -%>
|
18
|
+
---
|
19
|
+
- hosts: all
|
20
|
+
tasks:
|
21
|
+
- package:
|
22
|
+
<% if package_names.empty? -%>
|
23
|
+
name: []
|
24
|
+
<% else -%>
|
25
|
+
name: <%= indent(10) { to_yaml(package_names).gsub(/---/, "") } -%>
|
26
|
+
state: present
|
27
|
+
<% end -%>
|
28
|
+
|
data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
<%#
|
2
|
+
kind: job_template
|
3
|
+
name: Remove packages by search query - Katello Ansible Default
|
4
|
+
job_category: Katello
|
5
|
+
description_format: 'Remove package(s) %{Packages search query}'
|
6
|
+
feature: katello_package_remove_by_search
|
7
|
+
provider_type: Ansible
|
8
|
+
template_inputs:
|
9
|
+
- name: Packages search query
|
10
|
+
description: Filter criteria for packages to be removed.
|
11
|
+
input_type: user
|
12
|
+
required: false
|
13
|
+
%>
|
14
|
+
<% package_names = @host.package_names_for_job_template(
|
15
|
+
action: 'remove',
|
16
|
+
search: input('Packages search query')
|
17
|
+
) -%>
|
18
|
+
---
|
19
|
+
- hosts: all
|
20
|
+
tasks:
|
21
|
+
- package:
|
22
|
+
name:
|
23
|
+
<% package_names.each do |package_name| -%>
|
24
|
+
- <%= package_name %>
|
25
|
+
<% end -%>
|
26
|
+
state: absent
|
data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
<%#
|
2
|
+
kind: job_template
|
3
|
+
name: Update packages by search query - Katello Ansible Default
|
4
|
+
job_category: Katello
|
5
|
+
description_format: 'Update package(s) %{Packages search query}'
|
6
|
+
feature: katello_package_remove_by_search
|
7
|
+
provider_type: Ansible
|
8
|
+
template_inputs:
|
9
|
+
- name: Packages search query
|
10
|
+
description: Filter criteria for packages to be updated.
|
11
|
+
input_type: user
|
12
|
+
required: false
|
13
|
+
- name: Selected update versions
|
14
|
+
description: JSON string of selected package versions to be updated, in the format [ nvra ]. Leave blank to upgrade to latest available version.
|
15
|
+
input_type: user
|
16
|
+
required: false
|
17
|
+
value_type: plain
|
18
|
+
%>
|
19
|
+
<% package_names = @host.package_names_for_job_template(
|
20
|
+
action: 'update',
|
21
|
+
search: input('Packages search query'),
|
22
|
+
versions: input('Selected update versions')
|
23
|
+
) -%>
|
24
|
+
<% if package_names.empty? -%>
|
25
|
+
<%= render_template('Run Command - Ansible Default', :command => "yum -y update") %>
|
26
|
+
<% else -%>
|
27
|
+
---
|
28
|
+
- hosts: all
|
29
|
+
tasks:
|
30
|
+
- package:
|
31
|
+
name: <%= indent(10) { to_yaml(package_names).gsub(/---/, "") } -%>
|
32
|
+
state: latest
|
33
|
+
<% end -%>
|