katello 4.15.0 → 4.16.0.rc2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of katello might be problematic. Click here for more details.

Files changed (513) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/katello_object.js +2 -2
  3. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +9 -8
  4. data/app/assets/javascripts/katello/locale/bn/katello.js +248 -263
  5. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +247 -262
  6. data/app/assets/javascripts/katello/locale/ca/katello.js +247 -262
  7. data/app/assets/javascripts/katello/locale/cs/katello.js +521 -536
  8. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +253 -268
  9. data/app/assets/javascripts/katello/locale/de/katello.js +248 -263
  10. data/app/assets/javascripts/katello/locale/de_AT/katello.js +247 -262
  11. data/app/assets/javascripts/katello/locale/de_DE/katello.js +249 -264
  12. data/app/assets/javascripts/katello/locale/el/katello.js +251 -266
  13. data/app/assets/javascripts/katello/locale/en/katello.js +253 -268
  14. data/app/assets/javascripts/katello/locale/en_GB/katello.js +263 -278
  15. data/app/assets/javascripts/katello/locale/en_US/katello.js +247 -262
  16. data/app/assets/javascripts/katello/locale/es/katello.js +248 -263
  17. data/app/assets/javascripts/katello/locale/et_EE/katello.js +247 -262
  18. data/app/assets/javascripts/katello/locale/fr/katello.js +250 -265
  19. data/app/assets/javascripts/katello/locale/gl/katello.js +247 -262
  20. data/app/assets/javascripts/katello/locale/gu/katello.js +249 -264
  21. data/app/assets/javascripts/katello/locale/he_IL/katello.js +249 -264
  22. data/app/assets/javascripts/katello/locale/hi/katello.js +248 -263
  23. data/app/assets/javascripts/katello/locale/id/katello.js +261 -275
  24. data/app/assets/javascripts/katello/locale/it/katello.js +252 -267
  25. data/app/assets/javascripts/katello/locale/ja/katello.js +250 -265
  26. data/app/assets/javascripts/katello/locale/ka/katello.js +247 -262
  27. data/app/assets/javascripts/katello/locale/kn/katello.js +248 -263
  28. data/app/assets/javascripts/katello/locale/ko/katello.js +248 -263
  29. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +247 -262
  30. data/app/assets/javascripts/katello/locale/mr/katello.js +248 -263
  31. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +252 -267
  32. data/app/assets/javascripts/katello/locale/or/katello.js +248 -263
  33. data/app/assets/javascripts/katello/locale/pa/katello.js +248 -263
  34. data/app/assets/javascripts/katello/locale/pl/katello.js +248 -263
  35. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +247 -262
  36. data/app/assets/javascripts/katello/locale/pt/katello.js +248 -263
  37. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +248 -263
  38. data/app/assets/javascripts/katello/locale/ro/katello.js +247 -262
  39. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +247 -262
  40. data/app/assets/javascripts/katello/locale/ru/katello.js +253 -268
  41. data/app/assets/javascripts/katello/locale/sl/katello.js +247 -262
  42. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +248 -263
  43. data/app/assets/javascripts/katello/locale/ta/katello.js +248 -263
  44. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +247 -262
  45. data/app/assets/javascripts/katello/locale/te/katello.js +248 -263
  46. data/app/assets/javascripts/katello/locale/tr/katello.js +247 -262
  47. data/app/assets/javascripts/katello/locale/vi/katello.js +247 -262
  48. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +247 -262
  49. data/app/assets/javascripts/katello/locale/zh/katello.js +247 -262
  50. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +250 -265
  51. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +255 -270
  52. data/app/assets/javascripts/katello/sync_management/sync_management.js +16 -2
  53. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +46 -10
  54. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
  55. data/app/controllers/katello/api/v2/activation_keys_controller.rb +4 -9
  56. data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -1
  57. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +3 -1
  58. data/app/controllers/katello/api/v2/content_views_controller.rb +4 -1
  59. data/app/controllers/katello/api/v2/environments_controller.rb +4 -0
  60. data/app/controllers/katello/api/v2/errata_controller.rb +12 -1
  61. data/app/controllers/katello/api/v2/flatpak_remote_repositories_controller.rb +81 -0
  62. data/app/controllers/katello/api/v2/flatpak_remotes_controller.rb +86 -0
  63. data/app/controllers/katello/api/v2/host_bootc_images_controller.rb +71 -0
  64. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +4 -6
  65. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +3 -5
  66. data/app/controllers/katello/api/v2/repositories_controller.rb +18 -3
  67. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +0 -8
  68. data/app/controllers/katello/concerns/api/v2/http_proxies_controller_extensions.rb +17 -0
  69. data/app/controllers/katello/concerns/http_proxies_controller_extensions.rb +20 -0
  70. data/app/controllers/katello/sync_management_controller.rb +6 -2
  71. data/app/helpers/katello/content_source_helper.rb +8 -1
  72. data/app/helpers/katello/content_view_helper.rb +3 -1
  73. data/app/lib/actions/candlepin/activation_key/create.rb +1 -3
  74. data/app/lib/actions/candlepin/activation_key/update.rb +1 -3
  75. data/app/lib/actions/candlepin/environment/set_content.rb +17 -4
  76. data/app/lib/actions/katello/activation_key/create.rb +1 -2
  77. data/app/lib/actions/katello/activation_key/update.rb +2 -4
  78. data/app/lib/actions/katello/capsule_content/refresh_repos.rb +7 -1
  79. data/app/lib/actions/katello/content_view/presenters/incremental_updates_presenter.rb +3 -2
  80. data/app/lib/actions/katello/content_view/publish.rb +7 -2
  81. data/app/lib/actions/katello/content_view_environment/reassign_objects.rb +11 -2
  82. data/app/lib/actions/katello/content_view_version/incremental_update.rb +31 -22
  83. data/app/lib/actions/katello/flatpak/mirror_remote_repository.rb +30 -0
  84. data/app/lib/actions/katello/flatpak/scan_remote.rb +17 -12
  85. data/app/lib/actions/katello/host/update_system_purpose.rb +1 -6
  86. data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +18 -2
  87. data/app/lib/actions/pulp3/orchestration/repository/multi_copy_all_units.rb +5 -0
  88. data/app/lib/actions/pulp3/repository/multi_copy_units.rb +4 -0
  89. data/app/lib/katello/api/v2/rendering.rb +2 -1
  90. data/app/lib/katello/concerns/base_template_scope_extensions.rb +3 -4
  91. data/app/lib/katello/concerns/bookmark_controller_validator_extensions.rb +13 -0
  92. data/app/lib/katello/resources/candlepin/activation_key.rb +3 -5
  93. data/app/lib/katello/resources/candlepin/product.rb +2 -1
  94. data/app/lib/katello/util/cveak_migrator.rb +3 -2
  95. data/app/lib/katello/validators/alternate_content_source_path_validator.rb +2 -2
  96. data/app/lib/katello/validators/container_image_name_validator.rb +1 -1
  97. data/app/lib/katello/validators/content_validator.rb +1 -1
  98. data/app/lib/katello/validators/content_view_environment_coherent_default_validator.rb +2 -2
  99. data/app/lib/katello/validators/content_view_environment_org_validator.rb +2 -2
  100. data/app/lib/katello/validators/content_view_environment_validator.rb +3 -3
  101. data/app/lib/katello/validators/content_view_erratum_filter_rule_validator.rb +12 -12
  102. data/app/lib/katello/validators/content_view_filter_version_validator.rb +1 -1
  103. data/app/lib/katello/validators/generated_content_view_validator.rb +1 -1
  104. data/app/lib/katello/validators/gpg_key_content_type_validator.rb +2 -2
  105. data/app/lib/katello/validators/gpg_key_content_validator.rb +5 -5
  106. data/app/lib/katello/validators/katello_label_format_validator.rb +4 -4
  107. data/app/lib/katello/validators/katello_name_format_validator.rb +2 -2
  108. data/app/lib/katello/validators/katello_url_format_validator.rb +1 -1
  109. data/app/lib/katello/validators/library_presence_validator.rb +1 -1
  110. data/app/lib/katello/validators/no_trailing_space_validator.rb +1 -1
  111. data/app/lib/katello/validators/non_library_environment_validator.rb +1 -1
  112. data/app/lib/katello/validators/not_in_library_validator.rb +1 -1
  113. data/app/lib/katello/validators/path_descendents_validator.rb +1 -1
  114. data/app/lib/katello/validators/prior_validator.rb +1 -1
  115. data/app/lib/katello/validators/product_unique_attribute_validator.rb +1 -1
  116. data/app/lib/katello/validators/repo_disablement_validator.rb +2 -2
  117. data/app/lib/katello/validators/root_repository_unique_attribute_validator.rb +1 -1
  118. data/app/lib/katello/validators/self_reference_environment_validator.rb +1 -1
  119. data/app/lib/katello/validators/unique_field_in_org.rb +1 -1
  120. data/app/models/katello/activation_key.rb +6 -17
  121. data/app/models/katello/authorization/flatpak_remote.rb +33 -0
  122. data/app/models/katello/concerns/content_facet_host_extensions.rb +2 -1
  123. data/app/models/katello/concerns/host_managed_extensions.rb +8 -5
  124. data/app/models/katello/concerns/http_proxy_extensions.rb +4 -0
  125. data/app/models/katello/concerns/smart_proxy_extensions.rb +30 -6
  126. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -8
  127. data/app/models/katello/content_view.rb +6 -4
  128. data/app/models/katello/content_view_erratum_filter.rb +18 -2
  129. data/app/models/katello/content_view_version.rb +6 -0
  130. data/app/models/katello/docker_manifest.rb +8 -0
  131. data/app/models/katello/docker_manifest_list.rb +8 -0
  132. data/app/models/katello/erratum.rb +8 -2
  133. data/app/models/katello/flatpak_remote.rb +16 -0
  134. data/app/models/katello/flatpak_remote_repository.rb +18 -0
  135. data/app/models/katello/flatpak_remote_repository_manifest.rb +4 -0
  136. data/app/models/katello/glue/candlepin/pool.rb +1 -1
  137. data/app/models/katello/glue/pulp/repos.rb +12 -1
  138. data/app/models/katello/host/content_facet.rb +42 -3
  139. data/app/models/katello/host/subscription_facet.rb +4 -12
  140. data/app/models/katello/repository.rb +22 -8
  141. data/app/models/katello/rhel_lifecycle_status.rb +6 -0
  142. data/app/models/katello/root_repository.rb +6 -8
  143. data/app/models/katello/upstream_pool.rb +1 -0
  144. data/app/overrides/add_organization_attributes.rb +6 -0
  145. data/app/services/katello/product_content_finder.rb +2 -1
  146. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +1 -1
  147. data/app/services/katello/pulp3/docker_manifest.rb +3 -2
  148. data/app/services/katello/pulp3/docker_manifest_list.rb +3 -2
  149. data/app/services/katello/pulp3/repository/ansible_collection.rb +8 -1
  150. data/app/services/katello/pulp3/repository/apt.rb +37 -21
  151. data/app/services/katello/pulp3/repository/file.rb +4 -2
  152. data/app/services/katello/pulp3/repository.rb +4 -0
  153. data/app/services/katello/pulp3/task.rb +2 -2
  154. data/app/views/foreman/job_templates/bootc_action.erb +26 -0
  155. data/app/views/foreman/job_templates/bootc_rollback.erb +13 -0
  156. data/app/views/foreman/job_templates/bootc_status.erb +13 -0
  157. data/app/views/foreman/job_templates/bootc_switch.erb +13 -0
  158. data/app/views/foreman/job_templates/bootc_upgrade.erb +13 -0
  159. data/app/views/foreman/job_templates/flatpak_install.erb +23 -0
  160. data/app/views/foreman/job_templates/flatpak_login_action.erb +30 -0
  161. data/app/views/foreman/job_templates/flatpak_setup.erb +27 -0
  162. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +1 -1
  163. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +1 -1
  164. data/app/views/foreman/job_templates/resolve_traces_-_katello_ansible_default.erb +1 -1
  165. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +1 -1
  166. data/app/views/katello/api/v2/activation_keys/base.json.rabl +0 -4
  167. data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -1
  168. data/app/views/katello/api/v2/content_facet/show.json.rabl +2 -0
  169. data/app/views/katello/api/v2/content_view_filter_rules/show.json.rabl +1 -0
  170. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +5 -1
  171. data/app/views/katello/api/v2/docker_manifest_lists/show.json.rabl +1 -1
  172. data/app/views/katello/api/v2/docker_manifests/show.json.rabl +1 -1
  173. data/app/views/katello/api/v2/flatpak_remote_repositories/base.json.rabl +4 -0
  174. data/app/views/katello/api/v2/flatpak_remote_repositories/index.json.rabl +7 -0
  175. data/app/views/katello/api/v2/flatpak_remote_repositories/show.json.rabl +13 -0
  176. data/app/views/katello/api/v2/flatpak_remotes/base.json.rabl +5 -0
  177. data/app/views/katello/api/v2/flatpak_remotes/index.json.rabl +8 -0
  178. data/app/views/katello/api/v2/flatpak_remotes/permissions.json.rabl +11 -0
  179. data/app/views/katello/api/v2/flatpak_remotes/show.json.rabl +3 -0
  180. data/app/views/katello/api/v2/hosts/base.json.rabl +0 -8
  181. data/app/views/katello/api/v2/hosts/os_attributes.json.rabl +13 -0
  182. data/app/views/katello/api/v2/http_proxies/show.json.rabl +1 -0
  183. data/app/views/katello/api/v2/repositories/base.json.rabl +1 -0
  184. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -0
  185. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +0 -4
  186. data/app/views/katello/api/v2/subscriptions/show.json.rabl +1 -1
  187. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +2 -1
  188. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +10 -4
  189. data/app/views/overrides/http_proxies/_update_setting_input.html.erb +18 -0
  190. data/app/views/overrides/organizations/_step_1_override.html.erb +5 -0
  191. data/config/initializers/monkeys.rb +0 -1
  192. data/config/initializers/pagelets.rb +6 -0
  193. data/config/routes/api/registry.rb +1 -0
  194. data/config/routes/api/v2.rb +21 -0
  195. data/config/routes/overrides.rb +1 -0
  196. data/config/routes.rb +2 -0
  197. data/db/migrate/20190605014649_add_purpose_addons.rb +0 -12
  198. data/db/migrate/20200213184848_create_evr_type.rb +126 -1
  199. data/db/migrate/20200818192230_update_system_purpose_status.rb +0 -1
  200. data/db/migrate/20240207191223_remove_entitlement_mode_host_statuses.rb +0 -1
  201. data/db/migrate/20240924161240_katello_recreate_evr_constructs.rb +160 -0
  202. data/db/migrate/20241022121706_add_sync_dependencies_option.rb +5 -0
  203. data/db/migrate/20241101144625_remove_system_purpose_addons.rb +9 -0
  204. data/db/migrate/20241107002541_add_registry_url_to_katello_flatpak_remotes.rb +5 -0
  205. data/db/migrate/20241112145802_add_manifest_entity_to_content_facets.rb +7 -0
  206. data/db/migrate/20241120213713_add_allow_other_types_to_content_view_erratum_filter_rules.rb +6 -0
  207. data/db/migrate/20241206183052_add_content_type_to_container_manifests_and_lists.rb +9 -0
  208. data/db/seeds.d/75-job_templates.rb +5 -1
  209. data/engines/bastion/vendor/assets/javascripts/bastion/angular/angular.js +2 -2
  210. data/engines/bastion/vendor/assets/javascripts/bastion/angular-bootstrap/ui-bootstrap-tpls.js +3 -3
  211. data/engines/bastion/vendor/assets/javascripts/bastion/angular-bootstrap/ui-bootstrap.js +3 -3
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details-info.controller.js +0 -5
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +1 -41
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +0 -12
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html +2 -1
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html +1 -1
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-release-version-modal.controller.js +3 -1
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-system-purpose-modal.controller.js +1 -41
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js +1 -1
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +2 -2
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-release-version-modal.html +1 -1
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html +2 -2
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-system-purpose-modal.html +0 -13
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -1
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +0 -5
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +1 -35
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -14
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html +1 -1
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.controller.js +46 -22
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-content-views.controller.js +2 -1
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/views/debs.html +4 -0
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +1 -1
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-details.html +1 -1
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +1 -1
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-tasks-list.html +2 -1
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +85 -29
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +338 -93
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +340 -95
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +340 -95
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +341 -96
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +31 -54
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +338 -93
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +338 -93
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +341 -96
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +349 -104
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +338 -93
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +33 -56
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +338 -93
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +80 -68
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +340 -95
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +340 -95
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +339 -111
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +340 -95
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +379 -130
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +342 -103
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +70 -83
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +84 -90
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +340 -95
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +130 -138
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +338 -93
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +340 -95
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +343 -97
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +340 -95
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +340 -95
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +340 -95
  267. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +338 -93
  268. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +338 -93
  269. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +40 -63
  270. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +338 -93
  271. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +338 -93
  272. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +343 -102
  273. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +338 -93
  274. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +340 -95
  275. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +338 -93
  276. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +340 -95
  277. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +340 -95
  278. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +338 -93
  279. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +338 -93
  280. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +338 -93
  281. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +338 -93
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +70 -83
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +362 -105
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +29 -29
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +1 -1
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-advanced-sync-modal.controller.js +1 -1
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-sync-plan-modal.html +2 -2
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +24 -8
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-tasks.html +2 -1
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +2 -2
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +21 -8
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/os-versions.service.js +1 -0
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-info.html +3 -3
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-tasks.html +2 -1
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +4 -2
  296. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +2 -1
  297. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +3 -3
  298. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/partials/product-table-sync-status.html +1 -1
  299. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-start-date.html +1 -1
  300. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +1 -1
  301. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +2 -2
  302. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-table.directive.js +2 -1
  303. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/task-details.html +2 -2
  304. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-index.html +1 -1
  305. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-table.html +1 -1
  306. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html +1 -1
  307. data/lib/katello/engine.rb +6 -0
  308. data/lib/katello/permission_creator.rb +37 -0
  309. data/lib/katello/permissions/host_permissions.rb +2 -0
  310. data/lib/katello/permissions/registry_permissions.rb +1 -0
  311. data/lib/katello/plugin.rb +18 -1
  312. data/lib/katello/repository_types/docker.rb +0 -1
  313. data/lib/katello/repository_types/python.rb +1 -1
  314. data/lib/katello/version.rb +1 -1
  315. data/lib/katello.rb +2 -0
  316. data/locale/Makefile +20 -24
  317. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  318. data/locale/bn/katello.po +248 -263
  319. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  320. data/locale/bn_IN/katello.po +247 -262
  321. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  322. data/locale/ca/katello.po +247 -262
  323. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  324. data/locale/cs/katello.po +524 -799
  325. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  326. data/locale/cs_CZ/katello.po +254 -269
  327. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  328. data/locale/de/katello.po +248 -263
  329. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  330. data/locale/de_AT/katello.po +247 -262
  331. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  332. data/locale/de_DE/katello.po +250 -265
  333. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  334. data/locale/el/katello.po +252 -267
  335. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  336. data/locale/en/katello.po +257 -271
  337. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  338. data/locale/en_GB/katello.po +264 -279
  339. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  340. data/locale/en_US/katello.po +247 -262
  341. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  342. data/locale/es/katello.po +248 -263
  343. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  344. data/locale/et_EE/katello.po +247 -262
  345. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  346. data/locale/fr/katello.po +250 -265
  347. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  348. data/locale/gl/katello.po +247 -262
  349. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  350. data/locale/gu/katello.po +250 -265
  351. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  352. data/locale/he_IL/katello.po +249 -264
  353. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  354. data/locale/hi/katello.po +248 -263
  355. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  356. data/locale/id/katello.po +264 -275
  357. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  358. data/locale/it/katello.po +254 -270
  359. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  360. data/locale/ja/katello.po +250 -265
  361. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  362. data/locale/ka/katello.po +247 -262
  363. data/locale/katello.pot +1216 -1215
  364. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  365. data/locale/kn/katello.po +248 -263
  366. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  367. data/locale/ko/katello.po +248 -263
  368. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  369. data/locale/ml_IN/katello.po +247 -262
  370. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  371. data/locale/mr/katello.po +248 -263
  372. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  373. data/locale/nl_NL/katello.po +254 -268
  374. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  375. data/locale/or/katello.po +248 -263
  376. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  377. data/locale/pa/katello.po +248 -263
  378. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  379. data/locale/pl/katello.po +249 -264
  380. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  381. data/locale/pl_PL/katello.po +247 -262
  382. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  383. data/locale/pt/katello.po +248 -263
  384. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  385. data/locale/pt_BR/katello.po +248 -263
  386. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  387. data/locale/ro/katello.po +247 -262
  388. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  389. data/locale/ro_RO/katello.po +247 -262
  390. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  391. data/locale/ru/katello.po +255 -270
  392. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  393. data/locale/sl/katello.po +247 -262
  394. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  395. data/locale/sv_SE/katello.po +249 -264
  396. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  397. data/locale/ta/katello.po +248 -263
  398. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  399. data/locale/ta_IN/katello.po +247 -262
  400. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  401. data/locale/te/katello.po +248 -263
  402. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  403. data/locale/tr/katello.po +247 -262
  404. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  405. data/locale/vi/katello.po +247 -262
  406. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  407. data/locale/vi_VN/katello.po +247 -262
  408. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  409. data/locale/zh/katello.po +247 -262
  410. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  411. data/locale/zh_CN/katello.po +250 -265
  412. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  413. data/locale/zh_TW/katello.po +257 -272
  414. data/webpack/ForemanColumnExtensions/index.js +71 -3
  415. data/webpack/ForemanColumnExtensions/index.scss +9 -0
  416. data/webpack/__mocks__/foremanReact/Root/Context/ForemanContext.js +1 -0
  417. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +14 -8
  418. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +1 -1
  419. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +1 -20
  420. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +3 -61
  421. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +0 -5
  422. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +0 -5
  423. data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +87 -0
  424. data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +28 -2
  425. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +1 -1
  426. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +2 -2
  427. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +1 -1
  428. data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +55 -0
  429. data/webpack/containers/Application/config.js +5 -0
  430. data/webpack/global_index.js +3 -1
  431. data/webpack/redux/actions/RedHatRepositories/helpers.js +12 -6
  432. data/webpack/scenes/BootedContainerImages/BootedContainerImagesConstants.js +5 -0
  433. data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +244 -0
  434. data/webpack/scenes/BootedContainerImages/__tests__/bootedContainerImages.fixtures.js +42 -0
  435. data/webpack/scenes/BootedContainerImages/__tests__/bootedContainerImagesPage.test.js +233 -0
  436. data/webpack/scenes/BootedContainerImages/index.js +4 -0
  437. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +1 -2
  438. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +39 -7
  439. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +13 -2
  440. data/webpack/scenes/ContentViews/Details/Filters/CVFilterDetailType.js +1 -1
  441. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +1 -0
  442. data/webpack/scenes/ContentViews/Details/Repositories/RepoIcon.js +4 -2
  443. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +1 -2
  444. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +20 -1
  445. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +20 -1
  446. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +128 -18
  447. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedActivationKeys.fixture.json +0 -1
  448. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +1 -2
  449. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +6 -4
  450. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +5 -1
  451. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +6 -1
  452. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +1 -1
  453. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +5 -1
  454. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +4 -2
  455. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +38 -0
  456. data/webpack/scenes/Subscriptions/Details/SubscriptionPurposeAttributes.js +0 -1
  457. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailInfo.test.js.snap +0 -10
  458. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +0 -3
  459. data/webpack/scenes/Subscriptions/Details/__tests__/subscriptionDetails.fixtures.js +0 -1
  460. metadata +61 -58
  461. data/app/models/katello/activation_key_purpose_addon.rb +0 -6
  462. data/app/models/katello/purpose_addon.rb +0 -11
  463. data/app/models/katello/subscription_facet_purpose_addon.rb +0 -6
  464. data/lib/monkeys/fx_sqlite_skip.rb +0 -13
  465. data/locale/action_names.rb +0 -181
  466. data/locale/bn/katello.po.time_stamp +0 -0
  467. data/locale/bn_IN/katello.po.time_stamp +0 -0
  468. data/locale/ca/katello.po.time_stamp +0 -0
  469. data/locale/cs/katello.po.time_stamp +0 -0
  470. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  471. data/locale/de/katello.po.time_stamp +0 -0
  472. data/locale/de_AT/katello.po.time_stamp +0 -0
  473. data/locale/de_DE/katello.po.time_stamp +0 -0
  474. data/locale/el/katello.po.time_stamp +0 -0
  475. data/locale/en/katello.po.time_stamp +0 -0
  476. data/locale/en_GB/katello.po.time_stamp +0 -0
  477. data/locale/en_US/katello.po.time_stamp +0 -0
  478. data/locale/es/katello.po.time_stamp +0 -0
  479. data/locale/et_EE/katello.po.time_stamp +0 -0
  480. data/locale/fr/katello.po.time_stamp +0 -0
  481. data/locale/gl/katello.po.time_stamp +0 -0
  482. data/locale/gu/katello.po.time_stamp +0 -0
  483. data/locale/he_IL/katello.po.time_stamp +0 -0
  484. data/locale/hi/katello.po.time_stamp +0 -0
  485. data/locale/id/katello.po.time_stamp +0 -0
  486. data/locale/it/katello.po.time_stamp +0 -0
  487. data/locale/ja/katello.po.time_stamp +0 -0
  488. data/locale/ka/katello.po.time_stamp +0 -0
  489. data/locale/kn/katello.po.time_stamp +0 -0
  490. data/locale/ko/katello.po.time_stamp +0 -0
  491. data/locale/ml_IN/katello.po.time_stamp +0 -0
  492. data/locale/mr/katello.po.time_stamp +0 -0
  493. data/locale/nl_NL/katello.po.time_stamp +0 -0
  494. data/locale/or/katello.po.time_stamp +0 -0
  495. data/locale/pa/katello.po.time_stamp +0 -0
  496. data/locale/pl/katello.po.time_stamp +0 -0
  497. data/locale/pl_PL/katello.po.time_stamp +0 -0
  498. data/locale/pt/katello.po.time_stamp +0 -0
  499. data/locale/pt_BR/katello.po.time_stamp +0 -0
  500. data/locale/ro/katello.po.time_stamp +0 -0
  501. data/locale/ro_RO/katello.po.time_stamp +0 -0
  502. data/locale/ru/katello.po.time_stamp +0 -0
  503. data/locale/sl/katello.po.time_stamp +0 -0
  504. data/locale/sv_SE/katello.po.time_stamp +0 -0
  505. data/locale/ta/katello.po.time_stamp +0 -0
  506. data/locale/ta_IN/katello.po.time_stamp +0 -0
  507. data/locale/te/katello.po.time_stamp +0 -0
  508. data/locale/tr/katello.po.time_stamp +0 -0
  509. data/locale/vi/katello.po.time_stamp +0 -0
  510. data/locale/vi_VN/katello.po.time_stamp +0 -0
  511. data/locale/zh/katello.po.time_stamp +0 -0
  512. data/locale/zh_CN/katello.po.time_stamp +0 -0
  513. data/locale/zh_TW/katello.po.time_stamp +0 -0
@@ -0,0 +1,13 @@
1
+ object @resource
2
+
3
+ @resource ||= @object
4
+
5
+ attributes :id, :name, :description
6
+
7
+ node :operatingsystem_family do |resource|
8
+ resource.operatingsystem&.family
9
+ end
10
+
11
+ node :operatingsystem_major do |resource|
12
+ resource.operatingsystem&.major
13
+ end
@@ -0,0 +1 @@
1
+ node(:content_default_http_proxy) { |sp| sp.content_default_http_proxy? }
@@ -4,6 +4,7 @@ extends 'katello/api/v2/common/identifier'
4
4
 
5
5
  attributes :pulp_id => :backend_identifier
6
6
  attributes :relative_path, :container_repository_name, :full_path, :library_instance_id
7
+ attributes :full_gpg_key_path
7
8
  attributes :version_href, :remote_href, :publication_href
8
9
  attributes :content_counts
9
10
  attributes :mirroring_policy
@@ -19,6 +19,7 @@ glue(@resource.root) do
19
19
  attributes :ssl_ca_cert_id
20
20
  attributes :ssl_client_cert_id
21
21
  attributes :ssl_client_key_id
22
+ attributes :sync_dependencies
22
23
 
23
24
  attributes :product_type
24
25
  attributes :upstream_username
@@ -3,7 +3,3 @@ attributes :id, :uuid, :last_checkin, :service_level, :release_version, :autohea
3
3
  child :user => :user do
4
4
  attributes :id, :login
5
5
  end
6
-
7
- node :purpose_addons do |sub|
8
- sub.purpose_addons.pluck(:name)
9
- end
@@ -5,7 +5,7 @@ extends "katello/api/v2/subscriptions/base"
5
5
  attributes :arch
6
6
  attributes :description
7
7
  attributes :support_type
8
- attributes :roles, :usage, :addons
8
+ attributes :roles, :usage
9
9
  attributes :product_host_count
10
10
 
11
11
  node(:host_count) do |subscription|
@@ -5,8 +5,9 @@
5
5
  option.kt-cv { margin-left: 1em; }
6
6
  </style>
7
7
  <% spinner_path = asset_path('spinner.gif') %>
8
+ <% can_change_content_source = User.current.can?("view_smart_proxies") && User.current.can?("view_capsule_content") %>
8
9
 
9
- <% if edit_action? && !using_hostgroups_page? && !using_discovered_hosts_page? %>
10
+ <% if edit_action? && !using_hostgroups_page? && !using_discovered_hosts_page? && can_change_content_source %>
10
11
  <div style="margin-left: 270px">
11
12
  <%= link_to _("Change content source"), "/change_host_content_source?fromPage=hostEdit&host_id=#{@host.id}&initialContentSourceId=#{@host.content_source_id}" %>
12
13
  </div>
@@ -23,9 +23,15 @@
23
23
  :class => 'form-control', :name => ks_repo_select_name, :disabled => kickstart_options.empty? %>
24
24
  <% end %>
25
25
 
26
- <% content_for(:javascripts) do -%>
27
- <script>
26
+ <script>
27
+ if(window.allJsLoaded){
28
28
  KT.hosts.set_media_selection_bindings();
29
29
  KT.hosts.update_media_enablement();
30
- </script>
31
- <% end -%>
30
+ }
31
+ else {
32
+ $(document).on('ContentLoad', function(){
33
+ KT.hosts.set_media_selection_bindings();
34
+ KT.hosts.update_media_enablement();
35
+ });
36
+ }
37
+ </script>
@@ -0,0 +1,18 @@
1
+ <div class="clearfix">
2
+ <div class="form-group ">
3
+ <label class="col-md-2 control-label" for="http_proxy_content_default_http_proxy">
4
+ Default content HTTP proxy
5
+ </label>
6
+ <div class="col-md-4">
7
+ <% if @http_proxy.new_record? %>
8
+ <%= check_box_tag 'http_proxy[content_default_http_proxy]',
9
+ '1',
10
+ params.dig('http_proxy', 'content_default_http_proxy') == '1',
11
+ id: 'content_default_http_proxy' %>
12
+ Set this proxy as the default for content, updating the 'Default HTTP Proxy' setting.
13
+ <% else %>
14
+ <%= @http_proxy.content_default_http_proxy? ? _('Yes') : _('No') %>
15
+ <% end %>
16
+ </div>
17
+ </div>
18
+ </div>
@@ -0,0 +1,5 @@
1
+ <% if @taxonomy.is_a?(Organization) %>
2
+
3
+ <%= text_f f, :label, :class => 'input-xlarge' %>
4
+
5
+ <% end %>
@@ -1,4 +1,3 @@
1
1
  #place where monkey patches are required
2
2
  require 'monkeys/ar_postgres_evr_t'
3
- require 'monkeys/fx_sqlite_skip'
4
3
  require 'monkeys/remove_hidden_distribution'
@@ -4,3 +4,9 @@ Pagelets::Manager.with_key "hosts/_form" do |mgr|
4
4
  :partial => "overrides/activation_keys/host_environment_select",
5
5
  :priority => 80
6
6
  end
7
+
8
+ Pagelets::Manager.with_key "http_proxies/_form" do |mgr|
9
+ mgr.add_pagelet :main_tab_fields,
10
+ :partial => "overrides/http_proxies/update_setting_input",
11
+ :priority => 80
12
+ end
@@ -19,6 +19,7 @@ Katello::Engine.routes.draw do
19
19
  match '/v2' => 'registry_proxies#ping', :via => :get
20
20
  match '/v1/_ping' => 'registry_proxies#v1_ping', :via => :get
21
21
  match '/v1/search' => 'registry_proxies#v1_search', :via => :get
22
+ match '/index/static' => 'registry_proxies#static_index', :via => :get
22
23
  end
23
24
  end
24
25
  end
@@ -15,6 +15,25 @@ Katello::Engine.routes.draw do
15
15
  get :auto_complete_search, :on => :collection
16
16
  end
17
17
 
18
+ api_resources :flatpak_remotes, :only => [:index, :show, :create, :update, :destroy] do
19
+ get :auto_complete_search, :on => :collection
20
+ member do
21
+ post :scan
22
+ end
23
+ api_resources :flatpak_remote_repositories, :only => [:index, :show]
24
+ end
25
+
26
+ api_resources :flatpak_remote_repositories, :only => [:index, :show] do
27
+ get :auto_complete_search, :on => :collection
28
+ member do
29
+ post :mirror
30
+ end
31
+ end
32
+
33
+ api_resources :host_bootc_images, :only => [:auto_complete_search] do
34
+ get :auto_complete_search, :on => :collection
35
+ end
36
+
18
37
  api_resources :capsules, :only => [:index, :show] do
19
38
  member do
20
39
  resource :content, :only => [], :controller => 'capsule_content' do
@@ -263,6 +282,8 @@ Katello::Engine.routes.draw do
263
282
  get :manifest_history
264
283
  end
265
284
  end
285
+ api_resources :flatpak_remotes, :only => [:index, :show]
286
+ api_resources :flatpak_remote_repositories, :only => [:index, :show]
266
287
  end
267
288
 
268
289
  match "/packages/thindex" => "packages#thindex", :via => :get
@@ -59,6 +59,7 @@ Foreman::Application.routes.draw do
59
59
 
60
60
  collection do
61
61
  match '/auto_complete_search' => 'host_autocomplete#auto_complete_search', :via => :get
62
+ match '/bootc_images' => 'host_bootc_images#bootc_images', :via => :get
62
63
  match '/bulk/add_host_collections' => 'hosts_bulk_actions#bulk_add_host_collections', :via => :put
63
64
  match '/bulk/remove_host_collections' => 'hosts_bulk_actions#bulk_remove_host_collections', :via => :put
64
65
  match '/bulk/remove_host_collections' => 'hosts_bulk_actions#bulk_remove_host_collections', :via => :put
data/config/routes.rb CHANGED
@@ -33,6 +33,8 @@ Katello::Engine.routes.draw do
33
33
  match '/alternate_content_sources' => 'react#index', :via => [:get]
34
34
  match '/alternate_content_sources/*page' => 'react#index', :via => [:get]
35
35
 
36
+ match '/booted_container_images' => 'react#index', :via => [:get]
37
+
36
38
  Katello::RepositoryTypeManager.generic_ui_content_types(false).each do |type|
37
39
  get "/#{type.pluralize}", to: redirect("/content/#{type.pluralize}")
38
40
  get "/#{type.pluralize}/:page", to: redirect("/content/#{type.pluralize}/%{page}")
@@ -12,18 +12,6 @@ class AddPurposeAddons < ActiveRecord::Migration[5.2]
12
12
  add_foreign_key :katello_subscription_facet_purpose_addons, :katello_subscription_facets, column: :subscription_facet_id, name: :katello_sub_facet_purpose_addon_facet_id
13
13
  add_foreign_key :katello_subscription_facet_purpose_addons, :katello_purpose_addons, column: :purpose_addon_id, name: :katello_sub_facet_purpose_addon_purpose_addon_id
14
14
 
15
- Katello::Host::SubscriptionFacet.pluck(:id, :purpose_addons).each do |facet|
16
- yaml_string = facet[1]
17
- next if yaml_string.nil?
18
-
19
- parsed = YAML.parse(yaml_string)
20
- addon_names = parsed.root.children.map(&:value)
21
- addon_names.each do |addon|
22
- purpose_addon = Katello::PurposeAddon.find_or_create_by(name: addon)
23
- Katello::SubscriptionFacetPurposeAddon.create(purpose_addon_id: purpose_addon.id, subscription_facet_id: facet[0])
24
- end
25
- end
26
-
27
15
  remove_column :katello_subscription_facets, :purpose_addons, :text
28
16
  end
29
17
  end
@@ -4,7 +4,132 @@ class CreateEvrType < ActiveRecord::Migration[5.2]
4
4
  def up
5
5
  unless connection.adapter_name.downcase.include?('sqlite')
6
6
 
7
- enable_extension "evr"
7
+ execute <<~SQL
8
+ create type evr_array_item as (
9
+ n NUMERIC,
10
+ s TEXT
11
+ );
12
+
13
+ create type evr_t as (
14
+ epoch INT,
15
+ version evr_array_item[],
16
+ release evr_array_item[]
17
+ );
18
+
19
+ CREATE FUNCTION evr_trigger() RETURNS trigger AS $$
20
+ BEGIN
21
+ NEW.evr = (select ROW(coalesce(NEW.epoch::numeric,0),
22
+ rpmver_array(coalesce(NEW.version,'empty'))::evr_array_item[],
23
+ rpmver_array(coalesce(NEW.release,'empty'))::evr_array_item[])::evr_t);
24
+ RETURN NEW;
25
+ END;
26
+ $$ language 'plpgsql';
27
+
28
+ create or replace FUNCTION empty(t TEXT)
29
+ RETURNS BOOLEAN as $$
30
+ BEGIN
31
+ return t ~ '^[[:space:]]*$';
32
+ END;
33
+ $$ language 'plpgsql';
34
+
35
+ create or replace FUNCTION isalpha(ch CHAR)
36
+ RETURNS BOOLEAN as $$
37
+ BEGIN
38
+ if ascii(ch) between ascii('a') and ascii('z') or
39
+ ascii(ch) between ascii('A') and ascii('Z')
40
+ then
41
+ return TRUE;
42
+ end if;
43
+ return FALSE;
44
+ END;
45
+ $$ language 'plpgsql';
46
+
47
+ create or replace FUNCTION isalphanum(ch CHAR)
48
+ RETURNS BOOLEAN as $$
49
+ BEGIN
50
+ if ascii(ch) between ascii('a') and ascii('z') or
51
+ ascii(ch) between ascii('A') and ascii('Z') or
52
+ ascii(ch) between ascii('0') and ascii('9')
53
+ then
54
+ return TRUE;
55
+ end if;
56
+ return FALSE;
57
+ END;
58
+ $$ language 'plpgsql';
59
+
60
+ create or replace function isdigit(ch CHAR)
61
+ RETURNS BOOLEAN as $$
62
+ BEGIN
63
+ if ascii(ch) between ascii('0') and ascii('9')
64
+ then
65
+ return TRUE;
66
+ end if;
67
+ return FALSE;
68
+ END ;
69
+ $$ language 'plpgsql';
70
+
71
+ create or replace FUNCTION rpmver_array (string1 IN VARCHAR)
72
+ RETURNS evr_array_item[] as $$
73
+ declare
74
+ str1 VARCHAR := string1;
75
+ digits VARCHAR(10) := '0123456789';
76
+ lc_alpha VARCHAR(27) := 'abcdefghijklmnopqrstuvwxyz';
77
+ uc_alpha VARCHAR(27) := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
78
+ alpha VARCHAR(54) := lc_alpha || uc_alpha;
79
+ one VARCHAR;
80
+ isnum BOOLEAN;
81
+ ver_array evr_array_item[] := ARRAY[]::evr_array_item[];
82
+ BEGIN
83
+ if str1 is NULL
84
+ then
85
+ RAISE EXCEPTION 'VALUE_ERROR.';
86
+ end if;
87
+
88
+ one := str1;
89
+ <<segment_loop>>
90
+ while one <> ''
91
+ loop
92
+ declare
93
+ segm1 VARCHAR;
94
+ segm1_n NUMERIC := 0;
95
+ begin
96
+ -- Throw out all non-alphanum characters
97
+ while one <> '' and not isalphanum(one)
98
+ loop
99
+ one := substr(one, 2);
100
+ end loop;
101
+ str1 := one;
102
+ if str1 <> '' and isdigit(str1)
103
+ then
104
+ str1 := ltrim(str1, digits);
105
+ isnum := true;
106
+ else
107
+ str1 := ltrim(str1, alpha);
108
+ isnum := false;
109
+ end if;
110
+ if str1 <> ''
111
+ then segm1 := substr(one, 1, length(one) - length(str1));
112
+ else segm1 := one;
113
+ end if;
114
+
115
+ if segm1 = '' then return ver_array; end if; /* arbitrary */
116
+ if isnum
117
+ then
118
+ segm1 := ltrim(segm1, '0');
119
+ if segm1 <> '' then segm1_n := segm1::numeric; end if;
120
+ segm1 := NULL;
121
+ else
122
+ end if;
123
+ ver_array := array_append(ver_array, (segm1_n, segm1)::evr_array_item);
124
+ one := str1;
125
+ end;
126
+ end loop segment_loop;
127
+
128
+ return ver_array;
129
+ END ;
130
+ $$ language 'plpgsql';
131
+
132
+ SQL
8
133
 
9
134
  add_column :katello_rpms, :evr, :evr_t
10
135
  add_column :katello_installed_packages, :evr, :evr_t
@@ -2,7 +2,6 @@ class UpdateSystemPurposeStatus < ActiveRecord::Migration[6.0]
2
2
  def change
3
3
  purpose_types = [
4
4
  "Katello::PurposeStatus",
5
- "Katello::PurposeAddonsStatus",
6
5
  "Katello::PurposeRoleStatus",
7
6
  "Katello::PurposeSlaStatus",
8
7
  "Katello::PurposeUsageStatus",
@@ -8,7 +8,6 @@ class RemoveEntitlementModeHostStatuses < ActiveRecord::Migration[6.1]
8
8
  obsolete_statuses = [
9
9
  "Katello::SubscriptionStatus",
10
10
  "Katello::PurposeStatus",
11
- "Katello::PurposeAddonsStatus",
12
11
  "Katello::PurposeRoleStatus",
13
12
  "Katello::PurposeSlaStatus",
14
13
  "Katello::PurposeUsageStatus",
@@ -0,0 +1,160 @@
1
+ class KatelloRecreateEvrConstructs < ActiveRecord::Migration[6.1]
2
+ def up
3
+ if !extension_enabled?('evr')
4
+ return
5
+ else
6
+ execute <<~SQL
7
+ DROP EXTENSION evr CASCADE;
8
+ SQL
9
+
10
+ execute <<~SQL
11
+ create type evr_array_item as (
12
+ n NUMERIC,
13
+ s TEXT
14
+ );
15
+
16
+ create type evr_t as (
17
+ epoch INT,
18
+ version evr_array_item[],
19
+ release evr_array_item[]
20
+ );
21
+
22
+ CREATE FUNCTION evr_trigger() RETURNS trigger AS $$
23
+ BEGIN
24
+ NEW.evr = (select ROW(coalesce(NEW.epoch::numeric,0),
25
+ rpmver_array(coalesce(NEW.version,'empty'))::evr_array_item[],
26
+ rpmver_array(coalesce(NEW.release,'empty'))::evr_array_item[])::evr_t);
27
+ RETURN NEW;
28
+ END;
29
+ $$ language 'plpgsql';
30
+
31
+ create or replace FUNCTION empty(t TEXT)
32
+ RETURNS BOOLEAN as $$
33
+ BEGIN
34
+ return t ~ '^[[:space:]]*$';
35
+ END;
36
+ $$ language 'plpgsql';
37
+
38
+ create or replace FUNCTION isalpha(ch CHAR)
39
+ RETURNS BOOLEAN as $$
40
+ BEGIN
41
+ if ascii(ch) between ascii('a') and ascii('z') or
42
+ ascii(ch) between ascii('A') and ascii('Z')
43
+ then
44
+ return TRUE;
45
+ end if;
46
+ return FALSE;
47
+ END;
48
+ $$ language 'plpgsql';
49
+
50
+ create or replace FUNCTION isalphanum(ch CHAR)
51
+ RETURNS BOOLEAN as $$
52
+ BEGIN
53
+ if ascii(ch) between ascii('a') and ascii('z') or
54
+ ascii(ch) between ascii('A') and ascii('Z') or
55
+ ascii(ch) between ascii('0') and ascii('9')
56
+ then
57
+ return TRUE;
58
+ end if;
59
+ return FALSE;
60
+ END;
61
+ $$ language 'plpgsql';
62
+
63
+ create or replace function isdigit(ch CHAR)
64
+ RETURNS BOOLEAN as $$
65
+ BEGIN
66
+ if ascii(ch) between ascii('0') and ascii('9')
67
+ then
68
+ return TRUE;
69
+ end if;
70
+ return FALSE;
71
+ END ;
72
+ $$ language 'plpgsql';
73
+
74
+ create or replace FUNCTION rpmver_array (string1 IN VARCHAR)
75
+ RETURNS evr_array_item[] as $$
76
+ declare
77
+ str1 VARCHAR := string1;
78
+ digits VARCHAR(10) := '0123456789';
79
+ lc_alpha VARCHAR(27) := 'abcdefghijklmnopqrstuvwxyz';
80
+ uc_alpha VARCHAR(27) := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
81
+ alpha VARCHAR(54) := lc_alpha || uc_alpha;
82
+ one VARCHAR;
83
+ isnum BOOLEAN;
84
+ ver_array evr_array_item[] := ARRAY[]::evr_array_item[];
85
+ BEGIN
86
+ if str1 is NULL
87
+ then
88
+ RAISE EXCEPTION 'VALUE_ERROR.';
89
+ end if;
90
+
91
+ one := str1;
92
+ <<segment_loop>>
93
+ while one <> ''
94
+ loop
95
+ declare
96
+ segm1 VARCHAR;
97
+ segm1_n NUMERIC := 0;
98
+ begin
99
+ -- Throw out all non-alphanum characters
100
+ while one <> '' and not isalphanum(one)
101
+ loop
102
+ one := substr(one, 2);
103
+ end loop;
104
+ str1 := one;
105
+ if str1 <> '' and isdigit(str1)
106
+ then
107
+ str1 := ltrim(str1, digits);
108
+ isnum := true;
109
+ else
110
+ str1 := ltrim(str1, alpha);
111
+ isnum := false;
112
+ end if;
113
+ if str1 <> ''
114
+ then segm1 := substr(one, 1, length(one) - length(str1));
115
+ else segm1 := one;
116
+ end if;
117
+
118
+ if segm1 = '' then return ver_array; end if; /* arbitrary */
119
+ if isnum
120
+ then
121
+ segm1 := ltrim(segm1, '0');
122
+ if segm1 <> '' then segm1_n := segm1::numeric; end if;
123
+ segm1 := NULL;
124
+ else
125
+ end if;
126
+ ver_array := array_append(ver_array, (segm1_n, segm1)::evr_array_item);
127
+ one := str1;
128
+ end;
129
+ end loop segment_loop;
130
+
131
+ return ver_array;
132
+ END ;
133
+ $$ language 'plpgsql';
134
+
135
+ SQL
136
+
137
+ add_column :katello_rpms, :evr, :evr_t
138
+ add_column :katello_installed_packages, :evr, :evr_t
139
+
140
+ execute <<-SQL
141
+ update katello_rpms SET evr = (ROW(coalesce(epoch::numeric,0),
142
+ rpmver_array(coalesce(version,'empty'))::evr_array_item[],
143
+ rpmver_array(coalesce(release,'empty'))::evr_array_item[])::evr_t);
144
+
145
+ update katello_installed_packages SET evr = (ROW(coalesce(epoch::numeric,0),
146
+ rpmver_array(coalesce(version,'empty'))::evr_array_item[],
147
+ rpmver_array(coalesce(release,'empty'))::evr_array_item[])::evr_t);
148
+ SQL
149
+
150
+ create_trigger :evr_insert_trigger_katello_rpms, on: :katello_rpms
151
+ create_trigger :evr_update_trigger_katello_rpms, on: :katello_rpms
152
+ create_trigger :evr_insert_trigger_katello_installed_packages, on: :katello_installed_packages
153
+ create_trigger :evr_update_trigger_katello_installed_packages, on: :katello_installed_packages
154
+ end
155
+ end
156
+
157
+ def down
158
+ fail ActiveRecord::IrreversibleMigration
159
+ end
160
+ end
@@ -0,0 +1,5 @@
1
+ class AddSyncDependenciesOption < ActiveRecord::Migration[6.1]
2
+ def change
3
+ add_column :katello_root_repositories, :sync_dependencies, :boolean, :default => true
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class RemoveSystemPurposeAddons < ActiveRecord::Migration[6.1]
2
+ def change
3
+ remove_foreign_key :katello_subscription_facet_purpose_addons, :katello_purpose_addons, column: :purpose_addon_id
4
+
5
+ drop_table :katello_activation_key_purpose_addons
6
+ drop_table :katello_purpose_addons
7
+ drop_table :katello_subscription_facet_purpose_addons
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddRegistryURLToKatelloFlatpakRemotes < ActiveRecord::Migration[6.1]
2
+ def change
3
+ add_column :katello_flatpak_remotes, :registry_url, :string
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ class AddManifestEntityToContentFacets < ActiveRecord::Migration[6.1]
2
+ def change
3
+ add_reference :katello_content_facets, :manifest_entity, polymorphic: true, index: true
4
+ change_column_null :katello_content_facets, :manifest_entity_type, true
5
+ change_column_null :katello_content_facets, :manifest_entity_id, true
6
+ end
7
+ end
@@ -0,0 +1,6 @@
1
+ class AddAllowOtherTypesToContentViewErratumFilterRules < ActiveRecord::Migration[6.1]
2
+ def change
3
+ add_column :katello_content_view_erratum_filter_rules, :allow_other_types, :boolean,
4
+ :default => false, :null => false
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ class AddContentTypeToContainerManifestsAndLists < ActiveRecord::Migration[6.1]
2
+ def change
3
+ add_column :katello_docker_manifests, :content_type, :string, :limit => 255
4
+ add_column :katello_docker_manifest_lists, :content_type, :string, :limit => 255
5
+
6
+ add_index :katello_docker_manifests, :content_type
7
+ add_index :katello_docker_manifest_lists, :content_type
8
+ end
9
+ end
@@ -1,8 +1,12 @@
1
1
  User.as_anonymous_admin do
2
2
  JobTemplate.without_auditing do
3
+ # let's name root template as *_action.erb
4
+ root_action_files = Dir[File.join("#{Katello::Engine.root}/app/views/foreman/job_templates/**/*_action.erb")]
3
5
  template_files = Dir[File.join("#{Katello::Engine.root}/app/views/foreman/job_templates/**/*.erb")]
4
6
  template_files.reject! { |file| file.end_with?('_ansible_default.erb') } unless Katello.with_ansible?
5
- template_files.each do |template|
7
+
8
+ # root templates need to be imported first
9
+ (root_action_files + (template_files - root_action_files)).each do |template|
6
10
  sync = !Rails.env.test? && Setting[:remote_execution_sync_templates]
7
11
  template = JobTemplate.import_raw!(File.read(template), :default => true, :lock => true, :update => sync)
8
12
 
@@ -9593,7 +9593,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
9593
9593
 
9594
9594
  if (writeAttr !== false) {
9595
9595
  if (value === null || isUndefined(value)) {
9596
- this.$$element.removeAttr(attrName);
9596
+ this.$$element.prop(attrName, false);
9597
9597
  } else {
9598
9598
  if (SIMPLE_ATTR_NAME.test(attrName)) {
9599
9599
  // jQuery skips special boolean attrs treatment in XML nodes for
@@ -9602,7 +9602,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
9602
9602
  // in XHTML, call `removeAttr` in such cases instead.
9603
9603
  // See https://github.com/jquery/jquery/issues/4249
9604
9604
  if (booleanKey && value === false) {
9605
- this.$$element.removeAttr(attrName);
9605
+ this.$$element.prop(attrName, false);
9606
9606
  } else {
9607
9607
  this.$$element.attr(attrName, value);
9608
9608
  }
@@ -6083,7 +6083,7 @@ angular.module('ui.bootstrap.timepicker', [])
6083
6083
  padHours = angular.isDefined($attrs.padHours) ? $scope.$parent.$eval($attrs.padHours) : true;
6084
6084
 
6085
6085
  $scope.tabindex = angular.isDefined($attrs.tabindex) ? $attrs.tabindex : 0;
6086
- $element.removeAttr('tabindex');
6086
+ $element.prop('tabIndex', false);
6087
6087
 
6088
6088
  this.init = function(ngModelCtrl_, inputs) {
6089
6089
  ngModelCtrl = ngModelCtrl_;
@@ -6806,7 +6806,7 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
6806
6806
  });
6807
6807
 
6808
6808
  if (hintInputElem.attr('id')) {
6809
- hintInputElem.removeAttr('id'); // remove duplicate id if present.
6809
+ hintInputElem.prop('id', false); // remove duplicate id if present.
6810
6810
  }
6811
6811
  inputsContainer.append(hintInputElem);
6812
6812
  hintInputElem.after(element);
@@ -6855,7 +6855,7 @@ angular.module('ui.bootstrap.typeahead', ['ui.bootstrap.debounce', 'ui.bootstrap
6855
6855
  // This attribute is added or removed automatically when the `activeIdx` changes.
6856
6856
  scope.$watch('activeIdx', function(index) {
6857
6857
  if (index < 0) {
6858
- element.removeAttr('aria-activedescendant');
6858
+ element.prop('aria-activedescendant', false);
6859
6859
  } else {
6860
6860
  element.attr('aria-activedescendant', getMatchId(index));
6861
6861
  }