katello 4.13.1 → 4.14.0.rc1.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


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

Files changed (423) 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 -10
  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/registration_controller_extensions.rb +4 -0
  73. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +4 -3
  74. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +2 -4
  75. data/app/controllers/katello/remote_execution_controller.rb +53 -58
  76. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +19 -2
  77. data/app/helpers/katello/katello_urls_helper.rb +1 -1
  78. data/app/lib/actions/katello/alternate_content_source/alternate_content_source_common.rb +1 -1
  79. data/app/lib/actions/katello/alternate_content_source/update.rb +2 -1
  80. data/app/lib/actions/katello/capsule_content/verify_checksum.rb +1 -2
  81. data/app/lib/actions/katello/content_view/publish.rb +1 -0
  82. data/app/lib/actions/katello/content_view_version/create_repos.rb +1 -0
  83. data/app/lib/actions/katello/content_view_version/incremental_update.rb +3 -2
  84. data/app/lib/actions/katello/environment/{publish_repositories.rb → publish_container_repositories.rb} +10 -8
  85. data/app/lib/actions/katello/foreman/content_update.rb +4 -6
  86. data/app/lib/actions/katello/host/hypervisors_update.rb +6 -4
  87. data/app/lib/actions/katello/repository/create.rb +4 -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/save_version.rb +3 -5
  98. data/app/lib/katello/concerns/base_template_scope_extensions.rb +5 -9
  99. data/app/lib/katello/errors.rb +1 -0
  100. data/app/lib/katello/http_resource.rb +1 -0
  101. data/app/lib/katello/lazy_accessor.rb +1 -1
  102. data/app/lib/katello/resources/candlepin/candlepin_ping.rb +0 -5
  103. data/app/lib/katello/resources/candlepin/owner.rb +1 -1
  104. data/app/lib/katello/resources/candlepin/pool.rb +1 -2
  105. data/app/lib/katello/resources/candlepin/upstream_job.rb +1 -1
  106. data/app/lib/katello/resources/cdn.rb +3 -2
  107. data/app/lib/katello/resources/discovery/yum.rb +3 -3
  108. data/app/lib/katello/util/cdn_var_substitutor.rb +5 -3
  109. data/app/lib/katello/util/data.rb +3 -2
  110. data/app/lib/katello/util/errata.rb +4 -3
  111. data/app/lib/katello/util/package.rb +3 -3
  112. data/app/lib/katello/util/path_with_substitutions.rb +1 -1
  113. data/app/lib/katello/util/report_table.rb +3 -2
  114. data/app/lib/katello/util/url_matcher.rb +1 -1
  115. data/app/lib/katello/validators/alternate_content_source_path_validator.rb +4 -3
  116. data/app/lib/katello/validators/alternate_content_source_products_validator.rb +5 -7
  117. data/app/lib/katello/validators/container_image_name_validator.rb +1 -1
  118. data/app/lib/katello/validators/katello_name_format_validator.rb +2 -2
  119. data/app/lib/katello/validators/no_trailing_space_validator.rb +2 -2
  120. data/app/lib/katello/validators/prior_validator.rb +2 -2
  121. data/app/lib/katello/validators/product_unique_attribute_validator.rb +2 -4
  122. data/app/models/katello/activation_key.rb +4 -6
  123. data/app/models/katello/alternate_content_source.rb +1 -1
  124. data/app/models/katello/authorization/host_tracer.rb +1 -2
  125. data/app/models/katello/authorization/product.rb +1 -1
  126. data/app/models/katello/candlepin/repository_mapper.rb +2 -2
  127. data/app/models/katello/concerns/host_managed_extensions.rb +41 -10
  128. data/app/models/katello/concerns/hostgroup_extensions.rb +2 -4
  129. data/app/models/katello/concerns/location_extensions.rb +2 -4
  130. data/app/models/katello/concerns/operatingsystem_extensions.rb +84 -16
  131. data/app/models/katello/concerns/smart_proxy_extensions.rb +4 -4
  132. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +2 -0
  133. data/app/models/katello/content_view.rb +5 -1
  134. data/app/models/katello/content_view_environment.rb +19 -4
  135. data/app/models/katello/content_view_environment_content_facet.rb +11 -0
  136. data/app/models/katello/erratum.rb +1 -1
  137. data/app/models/katello/event.rb +1 -1
  138. data/app/models/katello/glue/provider.rb +1 -2
  139. data/app/models/katello/hash_util.rb +1 -1
  140. data/app/models/katello/host/content_facet.rb +16 -3
  141. data/app/models/katello/host/subscription_facet.rb +27 -4
  142. data/app/models/katello/host_collection.rb +12 -8
  143. data/app/models/katello/pool.rb +5 -1
  144. data/app/models/katello/product.rb +7 -4
  145. data/app/models/katello/provider.rb +1 -2
  146. data/app/models/katello/repository.rb +18 -4
  147. data/app/models/katello/root_repository.rb +19 -0
  148. data/app/models/katello/rpm.rb +2 -2
  149. data/app/models/katello/subscription_facet_pool.rb +1 -1
  150. data/app/models/katello/sync_plan.rb +5 -4
  151. data/app/models/katello/task_status.rb +18 -18
  152. data/app/presenters/katello/product_host_count_presenter.rb +10 -0
  153. data/app/services/katello/candlepin/consumer.rb +11 -11
  154. data/app/services/katello/candlepin/message_handler.rb +3 -2
  155. data/app/services/katello/content_unit_indexer.rb +6 -0
  156. data/app/services/katello/pulp3/alternate_content_source.rb +1 -3
  157. data/app/services/katello/pulp3/api/core.rb +1 -1
  158. data/app/services/katello/pulp3/api/docker.rb +10 -0
  159. data/app/services/katello/pulp3/content_view_version/export.rb +1 -0
  160. data/app/services/katello/pulp3/content_view_version/import.rb +6 -4
  161. data/app/services/katello/pulp3/content_view_version/importable_products.rb +1 -3
  162. data/app/services/katello/pulp3/repository/apt.rb +4 -16
  163. data/app/services/katello/pulp3/repository/yum.rb +9 -5
  164. data/app/services/katello/pulp3/repository.rb +2 -2
  165. data/app/services/katello/pulp3/repository_mirror.rb +2 -9
  166. data/app/services/katello/pulp3/task.rb +4 -2
  167. data/app/services/katello/registration_manager.rb +13 -3
  168. data/app/services/katello/smart_proxy_helper.rb +1 -0
  169. data/app/views/dashboard/_host_collection_widget.html.erb +5 -4
  170. data/app/views/foreman/job_templates/install_errata.erb +2 -0
  171. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +2 -0
  172. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +2 -0
  173. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +3 -1
  174. data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +1 -1
  175. data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +2 -2
  176. data/app/views/foreman/job_templates/resolve_traces.erb +5 -1
  177. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +1 -1
  178. data/app/views/foreman/job_templates/upload_profile.erb +2 -0
  179. data/app/views/foreman/smart_proxies/_reclaim_space.html.erb +7 -5
  180. data/app/views/katello/api/v2/content_facet/base.json.rabl +18 -2
  181. data/app/views/katello/api/v2/packages/thindex.json.rabl +6 -0
  182. data/app/views/katello/api/v2/repositories/show.json.rabl +8 -8
  183. data/app/views/katello/api/v2/repository_sets/show.json.rabl +1 -1
  184. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
  185. data/app/views/katello/api/v2/subscriptions/index.json.rabl +1 -0
  186. data/app/views/katello/api/v2/subscriptions/show.json.rabl +1 -0
  187. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +14 -11
  188. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +4 -4
  189. data/config/routes/api/v2.rb +3 -1
  190. data/config/routes.rb +1 -3
  191. data/db/migrate/20160114200145_add_mirror_on_sync_to_repositories.rb +1 -0
  192. data/db/migrate/20160131182301_add_download_policy_to_katello_repositories.rb +1 -0
  193. data/db/migrate/20210119162528_delete_puppet_and_ostree_repos.rb +3 -0
  194. data/db/migrate/20240522165308_add_priority_to_content_view_environment_content_facet.rb +5 -0
  195. data/db/migrate/20240621121212_katello_repository_debs_id_bigint.rb +6 -0
  196. data/db/migrate/20240729192228_add_convert2rhel_to_host_facets.rb +9 -0
  197. data/db/seeds.d/102-organizations.rb +5 -7
  198. data/db/seeds.d/150-module_job_templates.rb +7 -9
  199. data/db/seeds.d/75-job_templates.rb +9 -16
  200. data/engines/bastion_katello/README.md +3 -0
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +3 -3
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html +6 -6
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +2 -2
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +4 -4
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +6 -6
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +28 -27
  207. data/engines/bastion_katello/lib/bastion_katello/engine.rb +2 -2
  208. data/lib/katello/engine.rb +1 -8
  209. data/lib/katello/permission_creator.rb +3 -2
  210. data/lib/katello/plugin.rb +31 -27
  211. data/lib/katello/tasks/clean_old_file_repos.rake +2 -4
  212. data/lib/katello/tasks/reset.rake +3 -4
  213. data/lib/katello/version.rb +1 -1
  214. data/lib/katello.rb +0 -2
  215. data/lib/monkeys/ar_postgres_evr_t.rb +2 -0
  216. data/locale/action_names.rb +1 -1
  217. data/locale/bn/katello.po +274 -22
  218. data/locale/bn_IN/katello.po +274 -22
  219. data/locale/ca/katello.po +274 -22
  220. data/locale/cs/katello.po +274 -22
  221. data/locale/cs_CZ/katello.po +275 -23
  222. data/locale/de/katello.po +280 -28
  223. data/locale/de_AT/katello.po +274 -22
  224. data/locale/de_DE/katello.po +274 -22
  225. data/locale/el/katello.po +274 -22
  226. data/locale/en/katello.po +274 -22
  227. data/locale/en_GB/katello.po +274 -22
  228. data/locale/en_US/katello.po +274 -22
  229. data/locale/es/katello.po +276 -24
  230. data/locale/et_EE/katello.po +274 -22
  231. data/locale/fr/katello.po +283 -31
  232. data/locale/gl/katello.po +274 -22
  233. data/locale/gu/katello.po +274 -22
  234. data/locale/he_IL/katello.po +274 -22
  235. data/locale/hi/katello.po +274 -22
  236. data/locale/id/katello.po +274 -22
  237. data/locale/it/katello.po +274 -22
  238. data/locale/ja/katello.po +283 -31
  239. data/locale/ka/katello.po +280 -28
  240. data/locale/katello.pot +1001 -527
  241. data/locale/kn/katello.po +274 -22
  242. data/locale/ko/katello.po +274 -22
  243. data/locale/ml_IN/katello.po +274 -22
  244. data/locale/mr/katello.po +274 -22
  245. data/locale/nl_NL/katello.po +274 -22
  246. data/locale/or/katello.po +274 -22
  247. data/locale/pa/katello.po +274 -22
  248. data/locale/pl/katello.po +274 -22
  249. data/locale/pl_PL/katello.po +274 -22
  250. data/locale/pt/katello.po +274 -22
  251. data/locale/pt_BR/katello.po +276 -24
  252. data/locale/ro/katello.po +274 -22
  253. data/locale/ro_RO/katello.po +274 -22
  254. data/locale/ru/katello.po +274 -22
  255. data/locale/sl/katello.po +274 -22
  256. data/locale/sv_SE/katello.po +274 -22
  257. data/locale/ta/katello.po +274 -22
  258. data/locale/ta_IN/katello.po +274 -22
  259. data/locale/te/katello.po +274 -22
  260. data/locale/tr/katello.po +274 -22
  261. data/locale/vi/katello.po +274 -22
  262. data/locale/vi_VN/katello.po +274 -22
  263. data/locale/zh/katello.po +274 -22
  264. data/locale/zh_CN/katello.po +283 -31
  265. data/locale/zh_TW/katello.po +274 -22
  266. data/webpack/ForemanColumnExtensions/index.js +44 -1
  267. data/webpack/components/Table/TableWrapper.js +6 -0
  268. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +24 -3
  269. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +124 -56
  270. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewActions.js +2 -3
  271. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViewDetailsCard.test.js +44 -10
  272. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +83 -31
  273. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
  274. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionHooks.js +1 -1
  275. data/webpack/components/extensions/HostDetails/Tabs/__tests__/remoteExecutionActions.test.js +44 -0
  276. data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +22 -7
  277. data/webpack/components/extensions/Hosts/ActionsBar/ActionsBar.scss +14 -0
  278. data/webpack/components/extensions/Hosts/ActionsBar/index.js +82 -23
  279. data/webpack/components/extensions/Hosts/BulkActions/BulkChangeHostCVModal/index.js +5 -2
  280. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/02_BulkErrataTable.js +171 -0
  281. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +160 -0
  282. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +99 -0
  283. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +157 -0
  284. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/index.js +24 -0
  285. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/02_BulkPackagesTable.js +157 -0
  286. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +168 -0
  287. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +141 -0
  288. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +252 -0
  289. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/index.js +24 -0
  290. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +176 -0
  291. data/webpack/components/extensions/Hosts/TableRowActions/index.js +17 -0
  292. data/webpack/global_index.js +11 -3
  293. data/webpack/redux/actions/RedHatRepositories/repositorySetRepositories.js +5 -6
  294. data/webpack/redux/reducers/RedHatRepositories/__tests__/repositorySetRepositories.test.js +1 -1
  295. data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.js +1 -1
  296. data/webpack/scenes/ContentViews/Copy/CopyContentViewModal.js +2 -1
  297. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +2 -1
  298. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +2 -1
  299. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +2 -1
  300. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +2 -1
  301. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +2 -2
  302. data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -1
  303. data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +3 -2
  304. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +2 -1
  305. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +2 -1
  306. data/webpack/scenes/ContentViews/components/CVBreadCrumb.js +2 -1
  307. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +2 -2
  308. data/webpack/scenes/Subscriptions/Details/SubscriptionAttributes.js +1 -0
  309. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailInfo.test.js.snap +10 -0
  310. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +6 -0
  311. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +2 -0
  312. data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +14 -0
  313. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableHelpers.js +1 -0
  314. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +10 -0
  315. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.fixtures.js +1 -0
  316. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +10 -0
  317. data/webpack/scenes/Tasks/helpers.js +1 -1
  318. metadata +25 -111
  319. data/app/assets/javascripts/katello/containers/container.js +0 -304
  320. data/app/lib/katello/util/http_helper.rb +0 -15
  321. data/app/models/732bd3db9f64c621c64d2be4f2a838727aac0845.patch +0 -61
  322. data/app/models/katello/repository.rb.bak +0 -978
  323. data/app/services/katello/pulp3/content_view_version/import_validator.rb.bak +0 -166
  324. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb.bak +0 -164
  325. data/lib/katello/tasks/update_repository_expiry.rake +0 -114
  326. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  327. data/locale/bn/katello.po.time_stamp +0 -0
  328. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  329. data/locale/bn_IN/katello.po.time_stamp +0 -0
  330. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  331. data/locale/ca/katello.po.time_stamp +0 -0
  332. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  333. data/locale/cs/katello.po.time_stamp +0 -0
  334. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  335. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  336. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  337. data/locale/de/katello.po.time_stamp +0 -0
  338. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  339. data/locale/de_AT/katello.po.time_stamp +0 -0
  340. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  341. data/locale/de_DE/katello.po.time_stamp +0 -0
  342. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  343. data/locale/el/katello.po.time_stamp +0 -0
  344. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  345. data/locale/en/katello.po.time_stamp +0 -0
  346. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  347. data/locale/en_GB/katello.po.time_stamp +0 -0
  348. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  349. data/locale/en_US/katello.po.time_stamp +0 -0
  350. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  351. data/locale/es/katello.po.time_stamp +0 -0
  352. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  353. data/locale/et_EE/katello.po.time_stamp +0 -0
  354. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  355. data/locale/fr/katello.po.time_stamp +0 -0
  356. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  357. data/locale/gl/katello.po.time_stamp +0 -0
  358. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  359. data/locale/gu/katello.po.time_stamp +0 -0
  360. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  361. data/locale/he_IL/katello.po.time_stamp +0 -0
  362. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  363. data/locale/hi/katello.po.time_stamp +0 -0
  364. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  365. data/locale/id/katello.po.time_stamp +0 -0
  366. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  367. data/locale/it/katello.po.time_stamp +0 -0
  368. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  369. data/locale/ja/katello.po.time_stamp +0 -0
  370. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  371. data/locale/ka/katello.po.time_stamp +0 -0
  372. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  373. data/locale/kn/katello.po.time_stamp +0 -0
  374. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  375. data/locale/ko/katello.po.time_stamp +0 -0
  376. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  377. data/locale/ml_IN/katello.po.time_stamp +0 -0
  378. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  379. data/locale/mr/katello.po.time_stamp +0 -0
  380. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  381. data/locale/nl_NL/katello.po.time_stamp +0 -0
  382. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  383. data/locale/or/katello.po.time_stamp +0 -0
  384. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  385. data/locale/pa/katello.po.time_stamp +0 -0
  386. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  387. data/locale/pl/katello.po.time_stamp +0 -0
  388. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  389. data/locale/pl_PL/katello.po.time_stamp +0 -0
  390. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  391. data/locale/pt/katello.po.time_stamp +0 -0
  392. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  393. data/locale/pt_BR/katello.po.time_stamp +0 -0
  394. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  395. data/locale/ro/katello.po.time_stamp +0 -0
  396. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  397. data/locale/ro_RO/katello.po.time_stamp +0 -0
  398. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  399. data/locale/ru/katello.po.time_stamp +0 -0
  400. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  401. data/locale/sl/katello.po.time_stamp +0 -0
  402. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  403. data/locale/sv_SE/katello.po.time_stamp +0 -0
  404. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  405. data/locale/ta/katello.po.time_stamp +0 -0
  406. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  407. data/locale/ta_IN/katello.po.time_stamp +0 -0
  408. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  409. data/locale/te/katello.po.time_stamp +0 -0
  410. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  411. data/locale/tr/katello.po.time_stamp +0 -0
  412. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  413. data/locale/vi/katello.po.time_stamp +0 -0
  414. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  415. data/locale/vi_VN/katello.po.time_stamp +0 -0
  416. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  417. data/locale/zh/katello.po.time_stamp +0 -0
  418. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  419. data/locale/zh_CN/katello.po.time_stamp +0 -0
  420. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  421. data/locale/zh_TW/katello.po.time_stamp +0 -0
  422. data/webpack/global_test_setup.js.bak +0 -59
  423. data/webpack/utils/useKatelloDocUrl.js +0 -18
@@ -19,9 +19,11 @@ foreign_input_sets:
19
19
  <% render_error(N_("No errata matching given search query")) if !input("Errata search query").blank? && advisory_ids.blank? -%>
20
20
  # RESOLVED_ERRATA_IDS=<%= advisory_ids.join(',') %>
21
21
 
22
+ <%= snippet_if_exists(template_name + " custom pre") %>
22
23
  <% if @host.operatingsystem.family == 'Suse' -%>
23
24
  <%= render_template('Package Action - Script Default', :action => 'install -n -t patch', :package => advisory_ids.join(' ')) %>
24
25
  <% else -%>
25
26
  <% advisories = advisory_ids.map { |e| "--advisory=#{e}" }.join(' ') -%>
26
27
  <%= render_template('Package Action - Script Default', :action => 'update-minimal', :package => advisories) %>
27
28
  <% end -%>
29
+ <%= snippet_if_exists(template_name + " custom post") %>
@@ -1,7 +1,7 @@
1
1
  <%#
2
2
  kind: job_template
3
3
  name: Install errata by search query - Katello Ansible Default
4
- job_category: Katello
4
+ job_category: Katello via Ansible
5
5
  description_format: 'Install errata %{Errata search query}'
6
6
  feature: katello_errata_install_by_search
7
7
  provider_type: Ansible
@@ -16,9 +16,11 @@ template_inputs:
16
16
  <% render_error(N_("No errata matching given search query")) if !input("Errata search query").blank? && advisory_ids.blank? -%>
17
17
  # RESOLVED_ERRATA_IDS=<%= advisory_ids.join(',') %>
18
18
 
19
+ <%= snippet_if_exists(template_name + " custom pre") %>
19
20
  <% if @host.operatingsystem.family == 'Suse' -%>
20
21
  <%= render_template('Run Command - Ansible Default', :command => "zypper -n install -t patch #{advisory_ids.join(' ')}") %>
21
22
  <% else -%>
22
23
  <% advisories = advisory_ids.map { |e| "--advisory=#{e}" }.join(' ') -%>
23
24
  <%= render_template('Run Command - Ansible Default', :command => "yum -y update-minimal #{advisories}") %>
24
25
  <% end -%>
26
+ <%= snippet_if_exists(template_name + " custom post") %>
@@ -1,7 +1,7 @@
1
1
  <%#
2
2
  kind: job_template
3
3
  name: Install packages by search query - Katello Ansible Default
4
- job_category: Katello
4
+ job_category: Katello via Ansible
5
5
  description_format: 'Install package(s) %{Package search query}'
6
6
  feature: katello_package_install_by_search
7
7
  provider_type: Ansible
@@ -1,7 +1,7 @@
1
1
  <%#
2
2
  kind: job_template
3
3
  name: Remove packages by search query - Katello Ansible Default
4
- job_category: Katello
4
+ job_category: Katello via Ansible
5
5
  description_format: 'Remove package(s) %{Packages search query}'
6
6
  feature: katello_package_remove_by_search
7
7
  provider_type: Ansible
@@ -19,7 +19,7 @@ template_inputs:
19
19
  - hosts: all
20
20
  tasks:
21
21
  - package:
22
- name:
22
+ name:
23
23
  <% package_names.each do |package_name| -%>
24
24
  - <%= package_name %>
25
25
  <% end -%>
@@ -20,5 +20,9 @@ reboot = commands.delete('reboot')
20
20
  shutdown -r +1
21
21
  <% else -%>
22
22
  <%= commands.join("\n") %>
23
- sudo katello-tracer-upload
23
+ RUN_TRACER_CMD='katello-tracer-upload'
24
+ if [ "$(id -u)" -ne 0 ]; then
25
+ RUN_TRACER_CMD='sudo katello-tracer-upload'
26
+ fi
27
+ $RUN_TRACER_CMD
24
28
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <%#
2
2
  kind: job_template
3
3
  name: Update packages by search query - Katello Ansible Default
4
- job_category: Katello
4
+ job_category: Katello via Ansible
5
5
  description_format: 'Update package(s) %{Packages search query}'
6
6
  feature: katello_package_update_by_search
7
7
  provider_type: Ansible
@@ -10,6 +10,8 @@ feature: katello_upload_profile
10
10
  #!/bin/sh
11
11
  <% if @host.operatingsystem.family == 'Redhat' -%>
12
12
  dnf uploadprofile --force-upload
13
+ <% elsif @host.operatingsystem.family == 'Suse' -%>
14
+ katello-package-upload --force
13
15
  <% else -%>
14
16
  package-profile-upload --force-upload
15
17
  <% end -%>
@@ -1,10 +1,12 @@
1
1
  <div>
2
2
  <h3><%= _('Reclaim Space') %></h3>
3
- <p translate>
4
- <strong>Warning</strong>: reclaiming space will delete all cached content units in "On Demand" repositories on this Smart Proxy.<br>
5
- Take precaution when cleaning custom repositories whose upstream parents don't keep old package versions.
6
- Storage used by deleted repositories will be reclaimed during the next orphan cleanup run.
7
- </p>
3
+ <% unless Setting[:hide_reclaim_space_warning] %>
4
+ <p translate>
5
+ <strong>Warning</strong>: reclaiming space will delete all cached content units in "On Demand" repositories on this Smart Proxy.<br>
6
+ Take precaution when cleaning custom repositories whose upstream parents don't keep old package versions.
7
+ Storage used by deleted repositories will be reclaimed during the next orphan cleanup run.
8
+ </p>
9
+ <% end %>
8
10
  <div class="button">
9
11
  <button class="btn btn-default" type="button" id="reclaimSpaceButton" ng-click="reclaimSpace()" translate>
10
12
  Reclaim Space
@@ -10,13 +10,29 @@ attributes :applicable_module_stream_count, :upgradable_module_stream_count
10
10
 
11
11
  child :content_view_environments => :content_view_environments do
12
12
  node :content_view do |cve|
13
- { id: cve.content_view.id, name: cve.content_view.name, composite: cve.content_view.composite }
13
+ {
14
+ id: cve.content_view&.id,
15
+ name: cve.content_view&.name,
16
+ composite: cve.content_view&.composite,
17
+ content_view_version: cve.content_view_version&.version,
18
+ content_view_version_id: cve.content_view_version&.id,
19
+ content_view_version_latest: cve.content_view_version&.latest?,
20
+ content_view_default: cve.content_view&.default?
21
+ }
14
22
  end
15
23
  node :lifecycle_environment do |cve|
16
- { id: cve.lifecycle_environment.id, name: cve.lifecycle_environment.name }
24
+ {
25
+ id: cve.lifecycle_environment&.id,
26
+ name: cve.lifecycle_environment&.name,
27
+ lifecycle_environment_library: cve.lifecycle_environment&.library?
28
+ }
29
+ end
30
+ node :candlepin_name do |cve|
31
+ cve.candlepin_name
17
32
  end
18
33
  end
19
34
 
35
+ # single cv/lce for backward compatibility
20
36
  node :content_view do |content_facet|
21
37
  content_view = content_facet.single_content_view
22
38
  if content_view.present?
@@ -0,0 +1,6 @@
1
+ object false
2
+
3
+ extends "katello/api/v2/common/metadata"
4
+ child @collection[:results] => :results do |_results|
5
+ attributes :name, :id
6
+ end
@@ -28,6 +28,8 @@ glue(@resource.root) do
28
28
  attributes :http_proxy_name
29
29
  attributes :retain_package_versions_count
30
30
  attributes :metadata_expire
31
+ attributes :allow_updates? => :allow_updates
32
+ attributes :is_container_push? => :is_container_push
31
33
 
32
34
  node :http_proxy do
33
35
  attributes :id => @resource.root&.http_proxy&.id, :name => @resource.root&.http_proxy&.name, :policy => @resource.root&.http_proxy_policy
@@ -58,14 +60,12 @@ attributes :promoted? => :promoted
58
60
  attributes :content_view_version_id, :library_instance_id
59
61
  attributes :last_contents_changed
60
62
 
61
- if @resource.is_a?(Katello::Repository)
62
- if @resource.distribution_version || @resource.distribution_arch || @resource.distribution_family || @resource.distribution_variant
63
- attributes :distribution_version
64
- attributes :distribution_arch
65
- attributes :distribution_bootable? => :distribution_bootable
66
- attributes :distribution_family
67
- attributes :distribution_variant
68
- end
63
+ if @resource.is_a?(Katello::Repository) && (@resource.distribution_version || @resource.distribution_arch || @resource.distribution_family || @resource.distribution_variant)
64
+ attributes :distribution_version
65
+ attributes :distribution_arch
66
+ attributes :distribution_bootable? => :distribution_bootable
67
+ attributes :distribution_family
68
+ attributes :distribution_variant
69
69
  end
70
70
 
71
71
  node :permissions do |repo|
@@ -65,7 +65,7 @@ node :enabled_content_override do |pc|
65
65
  end
66
66
 
67
67
  node :redhat do |pc|
68
- if pc&.product&.respond_to? :redhat?
68
+ if pc&.product.respond_to? :redhat?
69
69
  pc.product.redhat?
70
70
  end
71
71
  end
@@ -1,4 +1,4 @@
1
- attributes :id, :uuid, :last_checkin, :service_level, :release_version, :autoheal, :registered_at, :registered_through, :purpose_role, :purpose_usage, :hypervisor
1
+ attributes :id, :uuid, :last_checkin, :service_level, :release_version, :autoheal, :registered_at, :registered_through, :purpose_role, :purpose_usage, :hypervisor, :convert2rhel_through_foreman
2
2
 
3
3
  child :user => :user do
4
4
  attributes :id, :login
@@ -6,5 +6,6 @@ extends 'katello/api/v2/subscriptions/permissions'
6
6
 
7
7
  child @collection[:results] => :results do
8
8
  attributes :quantity_attached
9
+ attributes :product_host_count
9
10
  extends "katello/api/v2/subscriptions/base"
10
11
  end
@@ -6,6 +6,7 @@ attributes :arch
6
6
  attributes :description
7
7
  attributes :support_type
8
8
  attributes :roles, :usage, :addons
9
+ attributes :product_host_count
9
10
 
10
11
  node(:host_count) do |subscription|
11
12
  subscription.hosts.count
@@ -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>
@@ -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>