katello 4.13.0 → 4.14.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.

Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +12 -8
  3. data/app/assets/javascripts/katello/locale/bn/katello.js +274 -22
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +274 -22
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +274 -22
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +274 -22
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +275 -23
  8. data/app/assets/javascripts/katello/locale/de/katello.js +280 -28
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +274 -22
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +274 -22
  11. data/app/assets/javascripts/katello/locale/el/katello.js +274 -22
  12. data/app/assets/javascripts/katello/locale/en/katello.js +274 -22
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +274 -22
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +274 -22
  15. data/app/assets/javascripts/katello/locale/es/katello.js +276 -24
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +274 -22
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +283 -31
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +274 -22
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +274 -22
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +274 -22
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +274 -22
  22. data/app/assets/javascripts/katello/locale/id/katello.js +274 -22
  23. data/app/assets/javascripts/katello/locale/it/katello.js +274 -22
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +283 -31
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +280 -28
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +274 -22
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +274 -22
  28. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +274 -22
  29. data/app/assets/javascripts/katello/locale/mr/katello.js +274 -22
  30. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +274 -22
  31. data/app/assets/javascripts/katello/locale/or/katello.js +274 -22
  32. data/app/assets/javascripts/katello/locale/pa/katello.js +274 -22
  33. data/app/assets/javascripts/katello/locale/pl/katello.js +274 -22
  34. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +274 -22
  35. data/app/assets/javascripts/katello/locale/pt/katello.js +274 -22
  36. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +276 -24
  37. data/app/assets/javascripts/katello/locale/ro/katello.js +274 -22
  38. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +274 -22
  39. data/app/assets/javascripts/katello/locale/ru/katello.js +274 -22
  40. data/app/assets/javascripts/katello/locale/sl/katello.js +274 -22
  41. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +274 -22
  42. data/app/assets/javascripts/katello/locale/ta/katello.js +274 -22
  43. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +274 -22
  44. data/app/assets/javascripts/katello/locale/te/katello.js +274 -22
  45. data/app/assets/javascripts/katello/locale/tr/katello.js +274 -22
  46. data/app/assets/javascripts/katello/locale/vi/katello.js +274 -22
  47. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +274 -22
  48. data/app/assets/javascripts/katello/locale/zh/katello.js +274 -22
  49. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +283 -31
  50. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +274 -22
  51. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +118 -74
  52. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +15 -2
  53. data/app/controllers/katello/api/v2/activation_keys_controller.rb +1 -1
  54. data/app/controllers/katello/api/v2/api_controller.rb +7 -0
  55. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +4 -4
  56. data/app/controllers/katello/api/v2/debs_controller.rb +3 -2
  57. data/app/controllers/katello/api/v2/environments_controller.rb +2 -4
  58. data/app/controllers/katello/api/v2/host_contents_controller.rb +8 -3
  59. data/app/controllers/katello/api/v2/host_errata_controller.rb +4 -4
  60. data/app/controllers/katello/api/v2/host_packages_controller.rb +2 -2
  61. data/app/controllers/katello/api/v2/organizations_controller.rb +1 -1
  62. data/app/controllers/katello/api/v2/packages_controller.rb +13 -3
  63. data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +6 -2
  64. data/app/controllers/katello/api/v2/repositories_controller.rb +3 -4
  65. data/app/controllers/katello/api/v2/repository_sets_controller.rb +13 -14
  66. data/app/controllers/katello/api/v2/subscriptions_controller.rb +15 -9
  67. data/app/controllers/katello/api/v2/sync_controller.rb +2 -2
  68. data/app/controllers/katello/application_controller.rb +1 -1
  69. data/app/controllers/katello/concerns/api/v2/authorization.rb +3 -2
  70. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +28 -0
  71. data/app/controllers/katello/concerns/api/v2/registration_commands_controller_extensions.rb +1 -1
  72. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +4 -3
  73. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +2 -4
  74. data/app/controllers/katello/remote_execution_controller.rb +53 -58
  75. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +19 -2
  76. data/app/helpers/katello/katello_urls_helper.rb +1 -1
  77. data/app/lib/actions/katello/alternate_content_source/alternate_content_source_common.rb +1 -1
  78. data/app/lib/actions/katello/alternate_content_source/update.rb +2 -1
  79. data/app/lib/actions/katello/capsule_content/verify_checksum.rb +1 -2
  80. data/app/lib/actions/katello/content_view/publish.rb +1 -0
  81. data/app/lib/actions/katello/content_view_version/create_repos.rb +1 -0
  82. data/app/lib/actions/katello/content_view_version/incremental_update.rb +3 -2
  83. data/app/lib/actions/katello/environment/{publish_repositories.rb → publish_container_repositories.rb} +10 -8
  84. data/app/lib/actions/katello/foreman/content_update.rb +4 -6
  85. data/app/lib/actions/katello/host/hypervisors_update.rb +6 -4
  86. data/app/lib/actions/katello/repository/create.rb +4 -4
  87. data/app/lib/actions/katello/repository/discover.rb +11 -4
  88. data/app/lib/actions/katello/repository/import_upload.rb +4 -6
  89. data/app/lib/actions/katello/repository/metadata_generate.rb +1 -0
  90. data/app/lib/actions/katello/repository/update.rb +3 -3
  91. data/app/lib/actions/katello/repository_set/enable_repository.rb +5 -6
  92. data/app/lib/actions/middleware/backend_services_check.rb +3 -2
  93. data/app/lib/actions/pulp3/abstract_async_task.rb +2 -4
  94. data/app/lib/actions/pulp3/capsule_content/verify_checksum.rb +1 -2
  95. data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +5 -1
  96. data/app/lib/actions/pulp3/orchestration/repository/delete.rb +5 -2
  97. data/app/lib/actions/pulp3/repository/create_publication.rb +4 -0
  98. data/app/lib/actions/pulp3/repository/save_version.rb +3 -5
  99. data/app/lib/katello/concerns/base_template_scope_extensions.rb +5 -9
  100. data/app/lib/katello/errors.rb +1 -0
  101. data/app/lib/katello/http_resource.rb +1 -0
  102. data/app/lib/katello/lazy_accessor.rb +1 -1
  103. data/app/lib/katello/repo_discovery.rb +4 -190
  104. data/app/lib/katello/resources/candlepin/candlepin_ping.rb +0 -5
  105. data/app/lib/katello/resources/candlepin/owner.rb +1 -1
  106. data/app/lib/katello/resources/candlepin/pool.rb +1 -2
  107. data/app/lib/katello/resources/candlepin/upstream_job.rb +1 -1
  108. data/app/lib/katello/resources/cdn.rb +3 -2
  109. data/app/lib/katello/resources/discovery/container.rb +127 -0
  110. data/app/lib/katello/resources/discovery/yum.rb +95 -0
  111. data/app/lib/katello/util/cdn_var_substitutor.rb +5 -3
  112. data/app/lib/katello/util/data.rb +3 -2
  113. data/app/lib/katello/util/errata.rb +4 -3
  114. data/app/lib/katello/util/package.rb +3 -3
  115. data/app/lib/katello/util/path_with_substitutions.rb +1 -1
  116. data/app/lib/katello/util/report_table.rb +3 -2
  117. data/app/lib/katello/util/url_matcher.rb +1 -1
  118. data/app/lib/katello/validators/alternate_content_source_path_validator.rb +4 -3
  119. data/app/lib/katello/validators/alternate_content_source_products_validator.rb +5 -7
  120. data/app/lib/katello/validators/container_image_name_validator.rb +1 -1
  121. data/app/lib/katello/validators/katello_name_format_validator.rb +2 -2
  122. data/app/lib/katello/validators/no_trailing_space_validator.rb +2 -2
  123. data/app/lib/katello/validators/prior_validator.rb +2 -2
  124. data/app/lib/katello/validators/product_unique_attribute_validator.rb +2 -4
  125. data/app/models/katello/activation_key.rb +4 -6
  126. data/app/models/katello/alternate_content_source.rb +1 -1
  127. data/app/models/katello/authorization/host_tracer.rb +1 -2
  128. data/app/models/katello/candlepin/repository_mapper.rb +2 -2
  129. data/app/models/katello/concerns/host_managed_extensions.rb +41 -10
  130. data/app/models/katello/concerns/hostgroup_extensions.rb +2 -4
  131. data/app/models/katello/concerns/location_extensions.rb +2 -4
  132. data/app/models/katello/concerns/operatingsystem_extensions.rb +84 -16
  133. data/app/models/katello/concerns/smart_proxy_extensions.rb +4 -4
  134. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +2 -0
  135. data/app/models/katello/content_view.rb +5 -1
  136. data/app/models/katello/content_view_environment.rb +19 -4
  137. data/app/models/katello/content_view_environment_content_facet.rb +11 -0
  138. data/app/models/katello/erratum.rb +1 -1
  139. data/app/models/katello/event.rb +1 -1
  140. data/app/models/katello/glue/provider.rb +1 -2
  141. data/app/models/katello/hash_util.rb +1 -1
  142. data/app/models/katello/host/content_facet.rb +16 -3
  143. data/app/models/katello/host/subscription_facet.rb +27 -4
  144. data/app/models/katello/host_collection.rb +12 -8
  145. data/app/models/katello/pool.rb +5 -1
  146. data/app/models/katello/product.rb +7 -4
  147. data/app/models/katello/provider.rb +1 -2
  148. data/app/models/katello/repository.rb +18 -4
  149. data/app/models/katello/root_repository.rb +29 -0
  150. data/app/models/katello/rpm.rb +2 -2
  151. data/app/models/katello/subscription_facet_pool.rb +1 -1
  152. data/app/models/katello/sync_plan.rb +5 -4
  153. data/app/models/katello/task_status.rb +18 -18
  154. data/app/presenters/katello/product_host_count_presenter.rb +10 -0
  155. data/app/services/katello/candlepin/consumer.rb +11 -11
  156. data/app/services/katello/candlepin/message_handler.rb +3 -2
  157. data/app/services/katello/content_unit_indexer.rb +6 -0
  158. data/app/services/katello/pulp3/alternate_content_source.rb +1 -3
  159. data/app/services/katello/pulp3/api/core.rb +1 -1
  160. data/app/services/katello/pulp3/api/docker.rb +10 -0
  161. data/app/services/katello/pulp3/content_view_version/export.rb +1 -0
  162. data/app/services/katello/pulp3/content_view_version/import.rb +6 -4
  163. data/app/services/katello/pulp3/content_view_version/importable_products.rb +1 -3
  164. data/app/services/katello/pulp3/repository/apt.rb +4 -16
  165. data/app/services/katello/pulp3/repository/yum.rb +9 -5
  166. data/app/services/katello/pulp3/repository.rb +2 -2
  167. data/app/services/katello/pulp3/repository_mirror.rb +2 -9
  168. data/app/services/katello/pulp3/task.rb +4 -2
  169. data/app/services/katello/registration_manager.rb +13 -3
  170. data/app/services/katello/repository_type.rb +1 -1
  171. data/app/services/katello/smart_proxy_helper.rb +1 -0
  172. data/app/views/dashboard/_host_collection_widget.html.erb +5 -4
  173. data/app/views/foreman/job_templates/install_errata.erb +2 -0
  174. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +2 -0
  175. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +2 -0
  176. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +3 -1
  177. data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +1 -1
  178. data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +2 -2
  179. data/app/views/foreman/job_templates/resolve_traces.erb +5 -1
  180. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +1 -1
  181. data/app/views/foreman/job_templates/upload_profile.erb +2 -0
  182. data/app/views/foreman/smart_proxies/_reclaim_space.html.erb +7 -5
  183. data/app/views/katello/api/v2/content_facet/base.json.rabl +18 -2
  184. data/app/views/katello/api/v2/packages/thindex.json.rabl +6 -0
  185. data/app/views/katello/api/v2/repositories/show.json.rabl +8 -8
  186. data/app/views/katello/api/v2/repository_sets/show.json.rabl +1 -1
  187. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
  188. data/app/views/katello/api/v2/subscriptions/index.json.rabl +1 -0
  189. data/app/views/katello/api/v2/subscriptions/show.json.rabl +1 -0
  190. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +14 -11
  191. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +4 -4
  192. data/config/initializers/monkeys.rb +0 -1
  193. data/config/routes/api/v2.rb +3 -1
  194. data/config/routes.rb +1 -3
  195. data/db/migrate/20160114200145_add_mirror_on_sync_to_repositories.rb +1 -0
  196. data/db/migrate/20160131182301_add_download_policy_to_katello_repositories.rb +1 -0
  197. data/db/migrate/20210119162528_delete_puppet_and_ostree_repos.rb +3 -0
  198. data/db/migrate/20240522165308_add_priority_to_content_view_environment_content_facet.rb +5 -0
  199. data/db/migrate/20240621121212_katello_repository_debs_id_bigint.rb +6 -0
  200. data/db/migrate/20240729192228_add_convert2rhel_to_host_facets.rb +9 -0
  201. data/db/seeds.d/102-organizations.rb +5 -7
  202. data/db/seeds.d/150-module_job_templates.rb +7 -9
  203. data/db/seeds.d/75-job_templates.rb +9 -16
  204. data/engines/bastion_katello/README.md +3 -0
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +3 -3
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html +6 -6
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +2 -2
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -4
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +6 -6
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +31 -27
  211. data/engines/bastion_katello/lib/bastion_katello/engine.rb +2 -2
  212. data/lib/katello/engine.rb +1 -8
  213. data/lib/katello/permission_creator.rb +3 -2
  214. data/lib/katello/plugin.rb +31 -27
  215. data/lib/katello/repository_types/docker.rb +1 -0
  216. data/lib/katello/repository_types/yum.rb +1 -0
  217. data/lib/katello/tasks/clean_old_file_repos.rake +2 -4
  218. data/lib/katello/tasks/reset.rake +3 -4
  219. data/lib/katello/version.rb +1 -1
  220. data/lib/katello.rb +0 -4
  221. data/lib/monkeys/ar_postgres_evr_t.rb +2 -0
  222. data/locale/action_names.rb +1 -1
  223. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  224. data/locale/bn/katello.po +274 -22
  225. data/locale/bn_IN/katello.po +274 -22
  226. data/locale/ca/katello.po +274 -22
  227. data/locale/cs/katello.po +274 -22
  228. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  229. data/locale/cs_CZ/katello.po +275 -23
  230. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/de/katello.po +280 -28
  232. data/locale/de_AT/katello.po +274 -22
  233. data/locale/de_DE/katello.po +274 -22
  234. data/locale/el/katello.po +274 -22
  235. data/locale/en/katello.po +274 -22
  236. data/locale/en_GB/katello.po +274 -22
  237. data/locale/en_US/katello.po +274 -22
  238. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  239. data/locale/es/katello.po +276 -24
  240. data/locale/et_EE/katello.po +274 -22
  241. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  242. data/locale/fr/katello.po +283 -31
  243. data/locale/gl/katello.po +274 -22
  244. data/locale/gu/katello.po +274 -22
  245. data/locale/he_IL/katello.po +274 -22
  246. data/locale/hi/katello.po +274 -22
  247. data/locale/id/katello.po +274 -22
  248. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  249. data/locale/it/katello.po +274 -22
  250. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  251. data/locale/ja/katello.po +283 -31
  252. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/ka/katello.po +280 -28
  254. data/locale/katello.pot +1001 -527
  255. data/locale/kn/katello.po +274 -22
  256. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  257. data/locale/ko/katello.po +274 -22
  258. data/locale/ml_IN/katello.po +274 -22
  259. data/locale/mr/katello.po +274 -22
  260. data/locale/nl_NL/katello.po +274 -22
  261. data/locale/or/katello.po +274 -22
  262. data/locale/pa/katello.po +274 -22
  263. data/locale/pl/katello.po +274 -22
  264. data/locale/pl_PL/katello.po +274 -22
  265. data/locale/pt/katello.po +274 -22
  266. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  267. data/locale/pt_BR/katello.po +276 -24
  268. data/locale/ro/katello.po +274 -22
  269. data/locale/ro_RO/katello.po +274 -22
  270. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  271. data/locale/ru/katello.po +274 -22
  272. data/locale/sl/katello.po +274 -22
  273. data/locale/sv_SE/katello.po +274 -22
  274. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  275. data/locale/ta/katello.po +274 -22
  276. data/locale/ta_IN/katello.po +274 -22
  277. data/locale/te/katello.po +274 -22
  278. data/locale/tr/katello.po +274 -22
  279. data/locale/vi/katello.po +274 -22
  280. data/locale/vi_VN/katello.po +274 -22
  281. data/locale/zh/katello.po +274 -22
  282. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  283. data/locale/zh_CN/katello.po +283 -31
  284. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  285. data/locale/zh_TW/katello.po +274 -22
  286. data/webpack/ForemanColumnExtensions/index.js +44 -1
  287. data/webpack/components/Table/TableWrapper.js +6 -0
  288. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +24 -3
  289. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +124 -56
  290. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewActions.js +2 -3
  291. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViewDetailsCard.test.js +44 -10
  292. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +75 -31
  293. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
  294. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionHooks.js +1 -1
  295. data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +22 -7
  296. data/webpack/components/extensions/Hosts/ActionsBar/ActionsBar.scss +14 -0
  297. data/webpack/components/extensions/Hosts/ActionsBar/index.js +82 -23
  298. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/index.js +5 -2
  299. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/02_BulkErrataTable.js +171 -0
  300. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +160 -0
  301. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +99 -0
  302. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +157 -0
  303. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/index.js +24 -0
  304. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/02_BulkPackagesTable.js +157 -0
  305. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +168 -0
  306. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +141 -0
  307. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +252 -0
  308. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/index.js +24 -0
  309. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +176 -0
  310. data/webpack/components/extensions/Hosts/TableRowActions/index.js +17 -0
  311. data/webpack/global_index.js +11 -3
  312. data/webpack/redux/actions/RedHatRepositories/repositorySetRepositories.js +5 -6
  313. data/webpack/redux/reducers/RedHatRepositories/__tests__/repositorySetRepositories.test.js +1 -1
  314. data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.js +1 -1
  315. data/webpack/scenes/ContentViews/Copy/CopyContentViewModal.js +2 -1
  316. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +2 -1
  317. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +2 -1
  318. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +2 -1
  319. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +2 -1
  320. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +2 -2
  321. data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -1
  322. data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +3 -2
  323. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +2 -1
  324. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +2 -1
  325. data/webpack/scenes/ContentViews/components/CVBreadCrumb.js +2 -1
  326. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +2 -2
  327. data/webpack/scenes/Subscriptions/Details/SubscriptionAttributes.js +1 -0
  328. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailInfo.test.js.snap +10 -0
  329. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +6 -0
  330. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +2 -0
  331. data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +14 -0
  332. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableHelpers.js +1 -0
  333. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +10 -0
  334. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.fixtures.js +1 -0
  335. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +10 -0
  336. data/webpack/scenes/Tasks/helpers.js +1 -1
  337. metadata +49 -29
  338. data/app/assets/javascripts/katello/containers/container.js +0 -304
  339. data/db/migrate/20240531193030_remove_sha1_repository_checksum_type.rb +0 -10
  340. data/lib/monkeys/anemone.rb +0 -33
  341. data/webpack/utils/useKatelloDocUrl.js +0 -18
@@ -16,24 +16,26 @@
16
16
  <% cs_select_name = using_hostgroups_page? ? 'hostgroup[content_source_id]' : 'host[content_facet_attributes][content_source_id]' %>
17
17
  <% cs_select_attr = using_hostgroups_page? ? 'content_source' : 'content_facet.content_source' %>
18
18
 
19
- <%= field(f, cs_select_attr, {:label => _("Content Source")}) do
20
- if using_hostgroups_page?
21
- select_tag cs_select_id, content_source_options(@hostgroup, :include_blank => blank_or_inherit_with_id(f, :content_source)), :data => {"spinner_path" => spinner_path},
22
- :class => 'form-control', :name => cs_select_name
23
- else
24
- select_tag cs_select_id, content_source_options(@host, :selected_host_group => @hostgroup || @host.hostgroup, :include_blank => blank_or_inherit_with_id(f, :content_source)), :data => {"spinner_path" => spinner_path}, :class => 'form-control', :name => cs_select_name, :disabled => cv_lce_disabled?
25
- end
26
- end %>
19
+ <%= field(f, cs_select_attr, {:label => _("Content Source"), :help_inline => content_source_inherited?(@host) ? 'Inherited from host group' : nil }) do %>
20
+ <% if using_hostgroups_page? %>
21
+ <%= select_tag cs_select_id, content_source_options(@hostgroup, :include_blank => blank_or_inherit_with_id(f, :content_source)), :data => {"spinner_path" => spinner_path},
22
+ :class => 'form-control', :name => cs_select_name %>
23
+ <% else %>
24
+ <%= hidden_field_tag 'host[content_facet_attributes][content_source_id]', fetch_content_source(@host).try(:id) %>
25
+ <%= select_tag cs_select_id, content_source_options(@host, :selected_host_group => @hostgroup || @host.hostgroup, :include_blank => blank_or_inherit_with_id(f, :content_source)), :data => {"spinner_path" => spinner_path}, :class => 'form-control', :name => cs_select_name, :disabled => cv_lce_disabled? %>
26
+ <% end %>
27
+ <% end %>
27
28
 
28
29
  <% env_select_id = using_hostgroups_page? ? :hostgroup_lifecycle_environment_id : :host_lifecycle_environment_id %>
29
30
  <% env_select_name = using_hostgroups_page? ? 'hostgroup[lifecycle_environment_id]' : 'host[content_facet_attributes][lifecycle_environment_id]' %>
30
31
  <% env_select_attr = using_hostgroups_page? ? 'lifecycle_environment' : 'content_facet.single_lifecycle_environment' %>
31
32
 
32
- <%= field(f, env_select_attr, {:label => _("Lifecycle Environment")}) do %>
33
+ <%= field(f, env_select_attr, {:label => _("Lifecycle Environment"), :help_inline => lifecycle_environment_inherited?(@host) ? 'Inherited from host group' : nil}) do %>
33
34
  <% if using_hostgroups_page? %>
34
35
  <%= select_tag env_select_id, lifecycle_environment_options(@hostgroup, :include_blank => blank_or_inherit_with_id(f, :lifecycle_environment)), :class => 'form-control', :name => env_select_name %>
35
36
  <% elsif cv_lce_disabled? %>
36
- <%= hidden_field_tag 'host[content_facet_attributes][lifecycle_environment_id]', fetch_lifecycle_environment(@host).try(:id) %>
37
+ <% host_or_hostgroup_lce = (@host.lifecycle_environments.empty? && @host.hostgroup.present? && @host.hostgroup.lifecycle_environment.present?) ? fetch_lifecycle_environment(@host.hostgroup) : fetch_lifecycle_environment(@host) %>
38
+ <%= hidden_field_tag 'host[content_facet_attributes][lifecycle_environment_id]', host_or_hostgroup_lce.try(:id) %>
37
39
  <%= select_tag env_select_id, lifecycle_environment_options(@host, :selected_host_group => @hostgroup || @host.hostgroup, :include_blank => blank_or_inherit_with_id(f, :lifecycle_environment)), :class => 'form-control', :name => env_select_name, :disabled => true %>
38
40
  <% else %>
39
41
  <%= select_tag env_select_id, lifecycle_environment_options(@host, :selected_host_group => @hostgroup || @host.hostgroup, :include_blank => blank_or_inherit_with_id(f, :lifecycle_environment)), :class => 'form-control', :name => env_select_name %>
@@ -43,7 +45,8 @@ end %>
43
45
  <% cv_select_id = using_hostgroups_page? ? :hostgroup_content_view_id : :host_content_view_id %>
44
46
  <% cv_select_name = using_hostgroups_page? ? 'hostgroup[content_view_id]' : 'host[content_facet_attributes][content_view_id]' %>
45
47
  <% cv_select_attr = using_hostgroups_page? ? 'content_view' : 'content_facet.single_content_view' %>
46
- <%= field(f, cv_select_attr, {:label => _("Content View")}) do %>
48
+
49
+ <%= field(f, cv_select_attr, {:label => _("Content View"), :help_inline => content_view_inherited?(@host) ? 'Inherited from host group' : nil}) do %>
47
50
  <% if using_hostgroups_page? %>
48
51
  <%= select_tag cv_select_id, content_views_for_host(@hostgroup, :include_blank => blank_or_inherit_with_id(f, :content_view)), :data => {"spinner_path" => spinner_path}, :class => 'form-control', :name => cv_select_name %>
49
52
  <% elsif cv_lce_disabled? %>
@@ -18,10 +18,10 @@
18
18
 
19
19
  <% spinner_path = asset_path('spinner.gif') %>
20
20
 
21
- <%= field(f, ks_repo_select_attr, {:label => _("Synced Content")}) do
22
- select_tag ks_repo_select_id, view_to_options(kickstart_options, kickstart_repo_id, blank_or_inherit_with_id(f, :kickstart_repository)), :data => {"spinner_path" => spinner_path, "kickstart-repository-id" => kickstart_repo_id},
23
- :class => 'form-control', :name => ks_repo_select_name, :disabled => kickstart_options.empty?
24
- end %>
21
+ <%= field(f, ks_repo_select_attr, {:label => _("Synced Content"), :help_inline => kickstart_repo_inheritable?(@host) ? 'Automatically selected from content source, lifecycle environment, content_view, architecture, and operating system' : nil}) do %>
22
+ <%= select_tag ks_repo_select_id, view_to_options(kickstart_options, kickstart_repo_id, blank_or_inherit_with_id(f, :kickstart_repository)), :data => {"spinner_path" => spinner_path, "kickstart-repository-id" => kickstart_repo_id},
23
+ :class => 'form-control', :name => ks_repo_select_name, :disabled => kickstart_options.empty? %>
24
+ <% end %>
25
25
 
26
26
  <% content_for(:javascripts) do -%>
27
27
  <script>
@@ -1,5 +1,4 @@
1
1
  #place where monkey patches are required
2
- require 'monkeys/anemone'
3
2
  require 'monkeys/ar_postgres_evr_t'
4
3
  require 'monkeys/fx_sqlite_skip'
5
4
  require 'monkeys/remove_hidden_distribution'
@@ -266,6 +266,8 @@ Katello::Engine.routes.draw do
266
266
  end
267
267
  end
268
268
 
269
+ match "/packages/thindex" => "packages#thindex", :via => :get
270
+
269
271
  api_resources :packages, :only => [:index, :show] do
270
272
  collection do
271
273
  get :auto_complete_search
@@ -429,7 +431,7 @@ Katello::Engine.routes.draw do
429
431
  api_resources :packages, :only => [:index, :show]
430
432
  api_resources :package_groups, :only => [:index, :show]
431
433
  api_resources :files, :only => [:index, :show], :controller => 'file_units'
432
- api_resources :errata, :only => [:index, :show], :constraints => {:id => /[0-9a-zA-Z\-\+%_.:]+/}
434
+ api_resources :errata, :only => [:index, :show], :constraints => {:id => /[0-9a-zA-Z\-+%_.:]+/}
433
435
  api_resources :docker_manifests, :only => [:index, :show]
434
436
  api_resources :docker_manifest_lists, :only => [:index, :show]
435
437
  api_resources :docker_tags, :only => [:index, :show]
data/config/routes.rb CHANGED
@@ -10,9 +10,7 @@ Katello::Engine.routes.draw do
10
10
  end
11
11
  end
12
12
 
13
- if Katello.with_remote_execution?
14
- match '/remote_execution' => 'remote_execution#create', :via => [:post]
15
- end
13
+ match '/remote_execution' => 'remote_execution#create', :via => [:post]
16
14
  end
17
15
 
18
16
  get '/katello/providers/redhat_provider', to: redirect('/redhat_repositories')
@@ -2,6 +2,7 @@ class AddMirrorOnSyncToRepositories < ActiveRecord::Migration[4.2]
2
2
  class RepositoryMirrorOnSync < ApplicationRecord
3
3
  self.table_name = "katello_repositories"
4
4
  end
5
+
5
6
  def change
6
7
  add_column :katello_repositories, :mirror_on_sync, :boolean, :default => true, :null => false
7
8
  RepositoryMirrorOnSync.update_all(:mirror_on_sync => false)
@@ -2,6 +2,7 @@ class AddDownloadPolicyToKatelloRepositories < ActiveRecord::Migration[4.2]
2
2
  class DownloadPolicyRepository < ApplicationRecord
3
3
  self.table_name = "katello_repositories"
4
4
  end
5
+
5
6
  def change
6
7
  add_column :katello_repositories, :download_policy, :string, :limit => 255
7
8
  DownloadPolicyRepository.where(content_type: 'yum').update_all(download_policy: 'immediate')
@@ -14,12 +14,15 @@ class DeletePuppetAndOstreeRepos < ActiveRecord::Migration[6.0]
14
14
  class FakeContentViewPuppetEnvironment < Katello::Model
15
15
  self.table_name = 'katello_content_view_puppet_environments'
16
16
  end
17
+
17
18
  class FakePuppetModule < Katello::Model
18
19
  self.table_name = 'katello_puppet_modules'
19
20
  end
21
+
20
22
  class FakeRepositoryOstreeBranch < Katello::Model
21
23
  self.table_name = 'katello_repository_ostree_branches'
22
24
  end
25
+
23
26
  class FakeOstreeBranch < Katello::Model
24
27
  self.table_name = 'katello_ostree_branches'
25
28
  end
@@ -0,0 +1,5 @@
1
+ class AddPriorityToContentViewEnvironmentContentFacet < ActiveRecord::Migration[6.1]
2
+ def change
3
+ add_column :katello_content_view_environment_content_facets, :priority, :integer, default: 0, null: false
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class KatelloRepositoryDebsIdBigint < ActiveRecord::Migration[6.1]
2
+ def change
3
+ change_column :katello_repository_debs, :id, :bigint
4
+ execute 'ALTER SEQUENCE katello_repository_debs_id_seq AS bigint;'
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ class AddConvert2rhelToHostFacets < ActiveRecord::Migration[6.1]
2
+ def up
3
+ add_column :katello_subscription_facets, :convert2rhel_through_foreman, :int4
4
+ end
5
+
6
+ def down
7
+ remove_column :subscription_facets, :convert2rhel_through_foreman
8
+ end
9
+ end
@@ -8,12 +8,10 @@ unless Rails.env.test?
8
8
  ::Katello::OrganizationCreator.seed_all_organizations!
9
9
  end
10
10
 
11
- if ENV['SEED_ORGANIZATION']
12
- if Setting['db_pending_seed']
13
- admin = User.where(:login => ENV['SEED_ADMIN_USER'].present? ? ENV['SEED_ADMIN_USER'] : 'admin').first
14
- if admin && admin.default_organization.nil?
15
- admin.default_organization = Organization.find_by(:name => ENV['SEED_ORGANIZATION'])
16
- admin.save!
17
- end
11
+ if ENV['SEED_ORGANIZATION'] && (Setting['db_pending_seed'])
12
+ admin = User.where(:login => ENV['SEED_ADMIN_USER'].present? ? ENV['SEED_ADMIN_USER'] : 'admin').first
13
+ if admin && admin.default_organization.nil?
14
+ admin.default_organization = Organization.find_by(:name => ENV['SEED_ORGANIZATION'])
15
+ admin.save!
18
16
  end
19
17
  end
@@ -1,12 +1,10 @@
1
- if Katello.with_remote_execution?
2
- User.as_anonymous_admin do
3
- JobTemplate.without_auditing do
4
- module_template = JobTemplate.find_by(name: 'Module Action - Script Default')
5
- if module_template
6
- module_template.sync_feature('katello_module_stream_action')
7
- module_template.organizations << Organization.unscoped.all if module_template.organizations.empty?
8
- module_template.locations << Location.unscoped.all if module_template.locations.empty?
9
- end
1
+ User.as_anonymous_admin do
2
+ JobTemplate.without_auditing do
3
+ module_template = JobTemplate.find_by(name: 'Module Action - Script Default')
4
+ if module_template
5
+ module_template.sync_feature('katello_module_stream_action')
6
+ module_template.organizations << Organization.unscoped.all if module_template.organizations.empty?
7
+ module_template.locations << Location.unscoped.all if module_template.locations.empty?
10
8
  end
11
9
  end
12
10
  end
@@ -1,20 +1,13 @@
1
- if Katello.with_remote_execution?
2
- User.as_anonymous_admin do
3
- JobTemplate.without_auditing do
4
- template_files = Dir[File.join("#{Katello::Engine.root}/app/views/foreman/job_templates/**/*.erb")]
5
- template_files.reject! { |file| file.end_with?('_ansible_default.erb') } unless Katello.with_ansible?
6
- template_files.each do |template|
7
- sync = !Rails.env.test? && Setting[:remote_execution_sync_templates]
8
- # import! was renamed to import_raw! around 1.3.1
9
- if JobTemplate.respond_to?('import_raw!')
10
- template = JobTemplate.import_raw!(File.read(template), :default => true, :lock => true, :update => sync)
11
- else
12
- template = JobTemplate.import!(File.read(template), :default => true, :lock => true, :update => sync)
13
- end
1
+ User.as_anonymous_admin do
2
+ JobTemplate.without_auditing do
3
+ template_files = Dir[File.join("#{Katello::Engine.root}/app/views/foreman/job_templates/**/*.erb")]
4
+ template_files.reject! { |file| file.end_with?('_ansible_default.erb') } unless Katello.with_ansible?
5
+ template_files.each do |template|
6
+ sync = !Rails.env.test? && Setting[:remote_execution_sync_templates]
7
+ template = JobTemplate.import_raw!(File.read(template), :default => true, :lock => true, :update => sync)
14
8
 
15
- template.organizations << Organization.unscoped.all if template&.organizations&.empty?
16
- template.locations << Location.unscoped.all if template&.locations&.empty?
17
- end
9
+ template.organizations << Organization.unscoped.all if template&.organizations&.empty?
10
+ template.locations << Location.unscoped.all if template&.locations&.empty?
18
11
  end
19
12
  end
20
13
  end
@@ -10,8 +10,11 @@ The only real difference, as far as the user is concerned, is that the applicati
10
10
  sudo dnf -y install epel-release epel-next-release
11
11
  sudo dnf -y install npm chromium-headless chromium
12
12
  cd ./engines/bastion_katello
13
+ sudo npm install -g bower
13
14
  sudo npm install -g grunt-cli
14
15
  npm install
16
+ cd ../bastion
17
+ npm install
15
18
  ```
16
19
 
17
20
  ```
@@ -62,14 +62,14 @@ angular.module('Bastion.content-hosts').controller('ContentHostErrataController'
62
62
  previousEnv;
63
63
 
64
64
  if (host.hasContent()) {
65
- currentEnv = translate("Current Lifecycle Environment (%e/%cv)").replace("%e", host.content_facet_attributes.lifecycle_environment.name).replace("%cv", host.content_facet_attributes.content_view_name);
65
+ currentEnv = translate("Current Lifecycle Environment (%e/%cv)").replace("%e", host.content_facet_attributes.lifecycle_environment.name).replace("%cv", host.content_facet_attributes.content_view.name);
66
66
  $scope.errataOptions = [{name: currentEnv, label: 'current', order: 3}];
67
67
 
68
68
  if (!host['content_facet_attributes']['lifecycle_environment_library?']) {
69
69
  Environment.get({id: host['content_facet_attributes'].lifecycle_environment.id}).$promise.then(function (env) {
70
- previousEnv = translate("Previous Lifecycle Environment (%e/%cv)").replace('%e', env.prior.name).replace("%cv", host.content_facet_attributes.content_view_name);
70
+ previousEnv = translate("Previous Lifecycle Environment (%e/%cv)").replace('%e', env.prior.name).replace("%cv", host.content_facet_attributes.content_view.name);
71
71
  $scope.errataOptions.push({name: previousEnv,
72
- label: 'prior', order: 2, 'content_view_id': host.content_facet_attributes.content_view_id, 'environment_id': env.prior.id});
72
+ label: 'prior', order: 2, 'content_view_id': host.content_facet_attributes.content_view.id, 'environment_id': env.prior.id});
73
73
 
74
74
  });
75
75
  }
@@ -9,10 +9,10 @@
9
9
  <dd>
10
10
  <i class="fa fa-spinner fa-spin" ng-show="installedDebCount === undefined"></i>
11
11
  <span ng-show="installedDebCount !== undefined">
12
- <a ng-if="newHostDetailsUI" href="{{ '/hosts?search=' + createSearchString('installed_deb') }}" translate>
12
+ <a ng-if="newHostDetailsUI" href="{{ '/hosts?search=' + createSearchString('installed_deb') }}" target="_blank" rel="noreferrer noopener" translate>
13
13
  {{ installedDebCount }} Host(s)
14
14
  </a>
15
- <a ng-if="!newHostDetailsUI" href="{{ '/content_hosts?search=' + createSearchString('installed_deb') }}" translate>
15
+ <a ng-if="!newHostDetailsUI" href="{{ '/content_hosts?search=' + createSearchString('installed_deb') }}" target="_blank" rel="noreferrer noopener" translate>
16
16
  {{ installedDebCount }} Host(s)
17
17
  </a>
18
18
  </span>
@@ -20,20 +20,20 @@
20
20
 
21
21
  <dt translate>Applicable To</dt>
22
22
  <dd>
23
- <a ng-if="newHostDetailsUI" href="{{ '/hosts?search=' + createSearchString('applicable_debs') }}" translate>
23
+ <a ng-if="newHostDetailsUI" href="{{ '/hosts?search=' + createSearchString('applicable_debs') }}" target="_blank" rel="noreferrer noopener" translate>
24
24
  {{ deb.hosts_applicable_count }} Host(s)
25
25
  </a>
26
- <a ng-if="!newHostDetailsUI" href="{{ '/content_hosts?search=' + createSearchString('applicable_debs') }}" translate>
26
+ <a ng-if="!newHostDetailsUI" href="{{ '/content_hosts?search=' + createSearchString('applicable_debs') }}" target="_blank" rel="noreferrer noopener" translate>
27
27
  {{ deb.hosts_applicable_count }} Host(s)
28
28
  </a>
29
29
  </dd>
30
30
 
31
31
  <dt translate>Upgradable For</dt>
32
32
  <dd>
33
- <a ng-if="newHostDetailsUI" href="{{ '/hosts?search=' + createSearchString('upgradable_debs') }}" translate>
33
+ <a ng-if="newHostDetailsUI" href="{{ '/hosts?search=' + createSearchString('upgradable_debs') }}" target="_blank" rel="noreferrer noopener" translate>
34
34
  {{ deb.hosts_available_count }} Host(s)
35
35
  </a>
36
- <a ng-if="!newHostDetailsUI" href="{{ '/content_hosts?search=' + createSearchString('upgradable_debs') }}" translate>
36
+ <a ng-if="!newHostDetailsUI" href="{{ '/content_hosts?search=' + createSearchString('upgradable_debs') }}" target="_blank" rel="noreferrer noopener" translate>
37
37
  {{ deb.hosts_available_count }} Host(s)
38
38
  </a>
39
39
  </dd>
@@ -68,8 +68,8 @@
68
68
  </span>
69
69
  </td>
70
70
  <td bst-table-cell>{{ contentHost.operatingsystem_name }}</td>
71
- <td bst-table-cell>{{ contentHost.content_facet_attributes.lifecycle_environment_name }}</td>
72
- <td bst-table-cell>{{ contentHost.content_facet_attributes.content_view_name || "" }}</td>
71
+ <td bst-table-cell>{{ contentHost.content_facet_attributes.lifecycle_environment.name }}</td>
72
+ <td bst-table-cell>{{ contentHost.content_facet_attributes.content_view.name || "" }}</td>
73
73
  </tr>
74
74
  </tbody>
75
75
  </table>
@@ -1938,10 +1938,6 @@ msgstr ""
1938
1938
  msgid "Finished At"
1939
1939
  msgstr ""
1940
1940
 
1941
- #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
1942
- msgid "For older operating systems such as Red Hat Enterprise Linux 5 or CentOS 5 it is recommended to use sha1."
1943
- msgstr ""
1944
-
1945
1941
  #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
1946
1942
  msgid ""
1947
1943
  "For On Demand synchronization, only the metadata is downloaded during sync and packages are fetched and stored on the filesystem when clients request them.\n"
@@ -4282,6 +4278,10 @@ msgstr ""
4282
4278
  msgid "The selected environment contains no Content Views, please select a different environment."
4283
4279
  msgstr ""
4284
4280
 
4281
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4282
+ msgid "The sha1 checksum type is no longer supported. The checksum type will reset to 'Default' at the next edit or change in content."
4283
+ msgstr ""
4284
+
4285
4285
  #: app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan-form.html
4286
4286
  msgid "The time the sync should happen in your current time zone."
4287
4287
  msgstr ""
@@ -9,10 +9,10 @@
9
9
  <dd>
10
10
  <i class="fa fa-spinner fa-spin" ng-show="installedPackageCount === undefined"></i>
11
11
  <span ng-show="installedPackageCount !== undefined">
12
- <a ng-if="newHostDetailsUI" href="{{ newHostUrl('installed_package') }}" translate>
12
+ <a ng-if="newHostDetailsUI" href="{{ newHostUrl('installed_package') }}" target="_blank" rel="noreferrer noopener" translate>
13
13
  {{ installedPackageCount }} Host(s)
14
14
  </a>
15
- <a ng-if="!newHostDetailsUI" href="{{ encodedUrl('installed_package') }}" translate>
15
+ <a ng-if="!newHostDetailsUI" href="{{ encodedUrl('installed_package') }}" target="_blank" rel="noreferrer noopener" translate>
16
16
  {{ installedPackageCount }} Host(s)
17
17
  </a>
18
18
  </span>
@@ -20,20 +20,20 @@
20
20
 
21
21
  <dt translate>Applicable To</dt>
22
22
  <dd>
23
- <a ng-if="newHostDetailsUI" href="{{ newHostUrl('applicable_rpms') }}" translate>
23
+ <a ng-if="newHostDetailsUI" href="{{ newHostUrl('applicable_rpms') }}" target="_blank" rel="noreferrer noopener" translate>
24
24
  {{ package.hosts_applicable_count }} Host(s)
25
25
  </a>
26
- <a ng-if="!newHostDetailsUI" href="{{ encodedUrl('applicable_rpms') }}" translate>
26
+ <a ng-if="!newHostDetailsUI" href="{{ encodedUrl('applicable_rpms') }}" target="_blank" rel="noreferrer noopener" translate>
27
27
  {{ package.hosts_applicable_count }} Host(s)
28
28
  </a>
29
29
  </dd>
30
30
 
31
31
  <dt translate>Upgradable For</dt>
32
32
  <dd>
33
- <a ng-if="newHostDetailsUI" href="{{ newHostUrl('upgradable_rpms') }}" translate>
33
+ <a ng-if="newHostDetailsUI" href="{{ newHostUrl('upgradable_rpms') }}" target="_blank" rel="noreferrer noopener" translate>
34
34
  {{ package.hosts_available_count }} Host(s)
35
35
  </a>
36
- <a ng-if="!newHostDetailsUI" href="{{ encodedUrl('upgradable_rpms') }}" translate>
36
+ <a ng-if="!newHostDetailsUI" href="{{ encodedUrl('upgradable_rpms') }}" target="_blank" rel="noreferrer noopener" translate>
37
37
  {{ package.hosts_available_count }} Host(s)
38
38
  </a>
39
39
  </dd>
@@ -8,7 +8,7 @@
8
8
  <dt translate>Name</dt>
9
9
  <dd bst-edit-text="repository.name"
10
10
  on-save="save(repository)"
11
- readonly="product.redhat || denied('edit_products', product)">
11
+ readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
12
12
  </dd>
13
13
 
14
14
  <dt translate>Label</dt>
@@ -17,7 +17,7 @@
17
17
  <dt translate>Description</dt>
18
18
  <dd bst-edit-textarea="repository.description"
19
19
  on-save="save(repository)"
20
- readonly="product.redhat || denied('edit_products', product)">
20
+ readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
21
21
  </dd>
22
22
 
23
23
  <dt translate>Backend Identifier</dt>
@@ -54,7 +54,8 @@
54
54
  </dd>
55
55
 
56
56
  <dt ng-if="product.redhat != true" translate>Metadata Expiration (Seconds)</dt>
57
- <dd bst-edit-number="repository.metadata_expire" on-save="save(repository)" readonly="product.redhat || denied('edit_products', product)"
57
+ <dd bst-edit-number="repository.metadata_expire" on-save="save(repository)"
58
+ readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
58
59
  deletable="repository.metadata_expire !== null"
59
60
  on-delete="clearMetadataExpire()"
60
61
  min="1"
@@ -72,7 +73,7 @@
72
73
  <dt ng-show="repository.content_type === 'docker'" translate>Registry URL</dt>
73
74
  <dd bst-edit-text="repository.url"
74
75
  on-save="save(repository)"
75
- readonly="product.redhat || denied('edit_products', product)">
76
+ readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
76
77
  </dd>
77
78
 
78
79
  <span ng-show="repository.generic_remote_options !== []">
@@ -93,21 +94,21 @@
93
94
  <dt translate>Releases/Distributions</dt>
94
95
  <dd bst-edit-text="repository.deb_releases"
95
96
  on-save="save(repository)"
96
- readonly="denied('edit_products', product)">
97
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
97
98
  </dd>
98
99
  </span>
99
100
  <span ng-if="repository.content_type == 'deb'">
100
101
  <dt translate>Components</dt>
101
102
  <dd bst-edit-text="repository.deb_components"
102
103
  on-save="save(repository)"
103
- readonly="denied('edit_products', product)">
104
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
104
105
  </dd>
105
106
  </span>
106
107
  <span ng-if="repository.content_type == 'deb'">
107
108
  <dt translate>Architectures</dt>
108
109
  <dd bst-edit-text="repository.deb_architectures"
109
110
  on-save="save(repository)"
110
- readonly="denied('edit_products', product)">
111
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
111
112
  </dd>
112
113
  </span>
113
114
 
@@ -115,7 +116,7 @@
115
116
  <dt translate>Upstream Repository Name</dt>
116
117
  <dd bst-edit-text="repository.docker_upstream_name"
117
118
  on-save="save(repository)"
118
- readonly="product.redhat || denied('edit_products', product)">
119
+ readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
119
120
  </dd>
120
121
  </span>
121
122
 
@@ -135,13 +136,13 @@
135
136
  <dt translate>Requirements</dt>
136
137
  <dd class="overflow-span" bst-edit-textarea="repository.ansible_collection_requirements"
137
138
  on-save="save(repository)"
138
- readonly="denied('edit_products', product)"
139
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
139
140
  edit-trigger="uploadedFile">
140
141
  </dd>
141
142
 
142
143
  <dt translate>Ansible Collection Authorization</dt>
143
144
  <dd bst-edit-custom="repository.ansible_collection_auth_exists"
144
- readonly="denied('edit_products', product)"
145
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
145
146
  on-save="save(repository)"
146
147
  formatter="ansibleAuthFilter"
147
148
  formatter-options="repository"
@@ -166,13 +167,13 @@
166
167
  <dd bst-edit-checkbox="repository.verify_ssl_on_sync"
167
168
  formatter="booleanToYesNo"
168
169
  on-save="save(repository)"
169
- readonly="denied('edit_products', product)">
170
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
170
171
  </dd>
171
172
 
172
173
  <span ng-if="!product.redhat">
173
174
  <dt translate>Upstream Authorization</dt>
174
175
  <dd bst-edit-custom="repository.upstream_auth_exists"
175
- readonly="denied('edit_products', product)"
176
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
176
177
  on-save="save(repository)"
177
178
  formatter="upstreamPasswordFilter"
178
179
  formatter-options="repository"
@@ -203,25 +204,28 @@
203
204
  <span ng-show="repository.content_type === 'yum'">
204
205
  <dt translate>Yum Metadata Checksum</dt>
205
206
  <dd bst-edit-select="checksumTypeDisplay(repository.checksum_type)"
206
- readonly="product.redhat || denied('edit_products', product)"
207
+ readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
207
208
  selector="repository.checksum_type"
208
209
  options="checksums"
209
210
  on-save="save(repository)">
210
211
  </dd>
212
+ <p ng-hide="repository.checksum_type !== 'sha1'" class="help-block" translate>
213
+ The sha1 checksum type is no longer supported. The checksum type will reset to 'Default' at the next edit or change in content.
214
+ </p>
211
215
  </span>
212
216
 
213
217
  <span ng-show="repository.content_type === 'yum' && repository.mirroring_policy === 'additive'">
214
218
  <dt translate>Retain package versions</dt>
215
219
  <dd bst-edit-number="repository.retain_package_versions_count"
216
220
  on-save="save(repository)"
217
- readonly="denied('edit_products', product)">
221
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
218
222
  </dd>
219
223
  </span>
220
224
 
221
225
  <span>
222
226
  <dt translate>HTTP Proxy</dt>
223
227
  <dd bst-edit-custom="repository.http_proxy_policy"
224
- readonly="denied('edit_products', product)"
228
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
225
229
  on-save="save(repository)"
226
230
  formatter="httpProxyDetailsFilter"
227
231
  formatter-options="repository"
@@ -261,7 +265,7 @@
261
265
  <dd bst-edit-checkbox="repository.ignore_srpms"
262
266
  formatter="booleanToYesNo"
263
267
  on-save="save(repository)"
264
- readonly="denied('edit_products', product)">
268
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
265
269
  </dd>
266
270
  </span>
267
271
 
@@ -270,7 +274,7 @@
270
274
  <dd bst-edit-checkbox="repository.ignore_treeinfo"
271
275
  formatter="booleanToYesNo"
272
276
  on-save="save(repository)"
273
- readonly="denied('edit_products', product)">
277
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
274
278
  </dd>
275
279
  </span>
276
280
 
@@ -279,7 +283,7 @@
279
283
  <dd bst-edit-checkbox="repository.unprotected"
280
284
  formatter="booleanToYesNo"
281
285
  on-save="save(repository)"
282
- readonly="product.redhat || denied('edit_products', product)">
286
+ readonly="product.redhat || denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
283
287
  </dd>
284
288
  </span>
285
289
 
@@ -298,7 +302,7 @@
298
302
  <span ng-if="(repository.content_type === 'yum' && !product.redhat) || repository.content_type === 'deb'">
299
303
  <dt translate>GPG Key</dt>
300
304
  <dd bst-edit-select="repository.gpg_key.name"
301
- readonly="product.redhat ||denied('edit_products', product)"
305
+ readonly="product.redhat ||denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
302
306
  selector="repository.gpg_key_id"
303
307
  options="gpgKeys()"
304
308
  on-save="save(repository)">
@@ -306,21 +310,21 @@
306
310
  </span>
307
311
  <dt translate>SSL CA Cert</dt>
308
312
  <dd bst-edit-select="repository.ssl_ca_cert.name"
309
- readonly="product.redhat ||denied('edit_products', product)"
313
+ readonly="product.redhat ||denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
310
314
  selector="repository.ssl_ca_cert_id"
311
315
  options="certs()"
312
316
  on-save="save(repository)">
313
317
  </dd>
314
318
  <dt translate>SSL Client Cert</dt>
315
319
  <dd bst-edit-select="repository.ssl_client_cert.name"
316
- readonly="product.redhat ||denied('edit_products', product)"
320
+ readonly="product.redhat ||denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
317
321
  selector="repository.ssl_client_cert_id"
318
322
  options="certs()"
319
323
  on-save="save(repository)">
320
324
  </dd>
321
325
  <dt translate>SSL Client Key</dt>
322
326
  <dd bst-edit-select="repository.ssl_client_key.name"
323
- readonly="product.redhat ||denied('edit_products', product)"
327
+ readonly="product.redhat ||denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
324
328
  selector="repository.ssl_client_key_id"
325
329
  options="certs()"
326
330
  on-save="save(repository)">
@@ -328,7 +332,7 @@
328
332
  <span ng-if="repository.content_type == 'yum' || repository.content_type == 'deb' || repository.content_type == 'docker'">
329
333
  <dt translate>Download Policy</dt>
330
334
  <dd bst-edit-select="downloadPolicyDisplay(repository.download_policy)"
331
- readonly="denied('edit_products', product)"
335
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
332
336
  selector="repository.download_policy"
333
337
  options="downloadPolicies"
334
338
  options-format="id as name for (id, name) in options"
@@ -346,7 +350,7 @@
346
350
  <dt translate>Mirroring Policy</dt>
347
351
 
348
352
  <dd bst-edit-select="mirroringPolicyDisplay(repository.mirroring_policy, repository.content_type)"
349
- readonly="denied('edit_products', product)"
353
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push"
350
354
  selector="repository.mirroring_policy"
351
355
  options="mirroringPolicies(repository.content_type)"
352
356
  options-format="id as name for (id, name) in options"
@@ -357,12 +361,12 @@
357
361
  <dt translate>Include Tags</dt>
358
362
  <dd bst-edit-text="repository.commaIncludeTags"
359
363
  on-save="save(repository)"
360
- readonly="denied('edit_products', product)">
364
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
361
365
  </dd>
362
366
  <dt translate>Exclude Tags</dt>
363
367
  <dd bst-edit-text="repository.commaExcludeTags"
364
368
  on-save="save(repository)"
365
- readonly="denied('edit_products', product)">
369
+ readonly="denied('edit_products', product) || !repository.allow_updates || repository.is_container_push">
366
370
  </dd>
367
371
  </span>
368
372
  </dl>
@@ -521,7 +525,7 @@
521
525
 
522
526
  <span ng-hide="(repository.content_type === 'deb' && repository.url)">
523
527
  <section class="well" ng-if="permitted('edit_products', product) && !product.redhat && repository.content_type !== 'docker' && repository.content_type !== 'ostree' && repository.content_type !== 'ansible_collection'">
524
- <h5 translate ng-show="repository.content_type === 'yum' || 'deb'">Upload Package</h5>
528
+ <h5 translate ng-show="repository.content_type === 'yum' || repository.content_type === 'deb'">Upload Package</h5>
525
529
  <h5 translate ng-show="repository.content_type === 'file'">Upload File</h5>
526
530
 
527
531
  <form role="form"