katello 4.14.0 → 4.15.0.rc1

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

Potentially problematic release.


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

Files changed (432) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/chosen.jquery.js +3 -3
  3. data/app/assets/javascripts/katello/common/env_select_scroll.js +3 -3
  4. data/app/assets/javascripts/katello/common/katello.js +8 -7
  5. data/app/assets/javascripts/katello/common/katello_object.js +3 -3
  6. data/app/assets/javascripts/katello/common/menu.js +7 -7
  7. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +6 -6
  8. data/app/assets/javascripts/katello/locale/bn/katello.js +259 -28
  9. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +258 -27
  10. data/app/assets/javascripts/katello/locale/ca/katello.js +258 -27
  11. data/app/assets/javascripts/katello/locale/cs/katello.js +258 -27
  12. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +258 -27
  13. data/app/assets/javascripts/katello/locale/de/katello.js +259 -28
  14. data/app/assets/javascripts/katello/locale/de_AT/katello.js +258 -27
  15. data/app/assets/javascripts/katello/locale/de_DE/katello.js +258 -27
  16. data/app/assets/javascripts/katello/locale/el/katello.js +258 -27
  17. data/app/assets/javascripts/katello/locale/en/katello.js +258 -27
  18. data/app/assets/javascripts/katello/locale/en_GB/katello.js +258 -27
  19. data/app/assets/javascripts/katello/locale/en_US/katello.js +258 -27
  20. data/app/assets/javascripts/katello/locale/es/katello.js +259 -28
  21. data/app/assets/javascripts/katello/locale/et_EE/katello.js +258 -27
  22. data/app/assets/javascripts/katello/locale/fr/katello.js +259 -28
  23. data/app/assets/javascripts/katello/locale/gl/katello.js +258 -27
  24. data/app/assets/javascripts/katello/locale/gu/katello.js +258 -27
  25. data/app/assets/javascripts/katello/locale/he_IL/katello.js +258 -27
  26. data/app/assets/javascripts/katello/locale/hi/katello.js +258 -27
  27. data/app/assets/javascripts/katello/locale/id/katello.js +258 -27
  28. data/app/assets/javascripts/katello/locale/it/katello.js +259 -28
  29. data/app/assets/javascripts/katello/locale/ja/katello.js +259 -28
  30. data/app/assets/javascripts/katello/locale/ka/katello.js +259 -28
  31. data/app/assets/javascripts/katello/locale/kn/katello.js +258 -27
  32. data/app/assets/javascripts/katello/locale/ko/katello.js +259 -28
  33. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +258 -27
  34. data/app/assets/javascripts/katello/locale/mr/katello.js +258 -27
  35. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +258 -27
  36. data/app/assets/javascripts/katello/locale/or/katello.js +258 -27
  37. data/app/assets/javascripts/katello/locale/pa/katello.js +258 -27
  38. data/app/assets/javascripts/katello/locale/pl/katello.js +258 -27
  39. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +258 -27
  40. data/app/assets/javascripts/katello/locale/pt/katello.js +258 -27
  41. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +259 -28
  42. data/app/assets/javascripts/katello/locale/ro/katello.js +258 -27
  43. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +258 -27
  44. data/app/assets/javascripts/katello/locale/ru/katello.js +259 -28
  45. data/app/assets/javascripts/katello/locale/sl/katello.js +258 -27
  46. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +258 -27
  47. data/app/assets/javascripts/katello/locale/ta/katello.js +259 -28
  48. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +258 -27
  49. data/app/assets/javascripts/katello/locale/te/katello.js +258 -27
  50. data/app/assets/javascripts/katello/locale/tr/katello.js +258 -27
  51. data/app/assets/javascripts/katello/locale/vi/katello.js +258 -27
  52. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +258 -27
  53. data/app/assets/javascripts/katello/locale/zh/katello.js +258 -27
  54. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +259 -28
  55. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +259 -28
  56. data/app/assets/javascripts/katello/organizations/download_certificate.js +1 -1
  57. data/app/assets/javascripts/katello/sync_management/sync_management.js +22 -18
  58. data/app/assets/javascripts/katello/widgets/env_content_view_selector.js +5 -5
  59. data/app/assets/javascripts/katello/widgets/path_selector.js +6 -6
  60. data/app/assets/javascripts/katello/widgets/subpanel_new.js +1 -1
  61. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +7 -7
  62. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +6 -1
  63. data/app/controllers/katello/api/v2/activation_keys_controller.rb +131 -59
  64. data/app/controllers/katello/api/v2/api_controller.rb +1 -1
  65. data/app/controllers/katello/api/v2/capsule_content_controller.rb +21 -10
  66. data/app/controllers/katello/api/v2/content_view_components_controller.rb +1 -1
  67. data/app/controllers/katello/api/v2/content_view_environments_controller.rb +54 -0
  68. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +3 -3
  69. data/app/controllers/katello/api/v2/content_views_controller.rb +1 -1
  70. data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
  71. data/app/controllers/katello/api/v2/exports_controller.rb +1 -1
  72. data/app/controllers/katello/api/v2/host_collections_controller.rb +2 -2
  73. data/app/controllers/katello/api/v2/host_contents_controller.rb +1 -1
  74. data/app/controllers/katello/api/v2/host_errata_controller.rb +1 -1
  75. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +1 -1
  76. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +1 -4
  77. data/app/controllers/katello/api/v2/organizations_controller.rb +2 -1
  78. data/app/controllers/katello/api/v2/repositories_controller.rb +3 -2
  79. data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -1
  80. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +10 -16
  81. data/app/controllers/katello/concerns/api/v2/multi_cv_params_handling.rb +24 -0
  82. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +2 -5
  83. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +1 -1
  84. data/app/controllers/katello/concerns/registration_commands_controller_extensions.rb +1 -1
  85. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +5 -5
  86. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +2 -2
  87. data/app/helpers/katello/katello_url_helper.rb +1 -1
  88. data/app/lib/actions/candlepin/product/content_create.rb +12 -1
  89. data/app/lib/actions/candlepin/product/content_update.rb +21 -4
  90. data/app/lib/actions/katello/activation_key/reassign.rb +4 -3
  91. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +8 -3
  92. data/app/lib/actions/katello/capsule_content/update_content_counts.rb +21 -3
  93. data/app/lib/actions/katello/cdn_configuration/update.rb +1 -1
  94. data/app/lib/actions/katello/content_view/capsule_sync.rb +17 -1
  95. data/app/lib/actions/katello/content_view/incremental_updates.rb +1 -1
  96. data/app/lib/actions/katello/content_view/presenters/incremental_updates_presenter.rb +1 -1
  97. data/app/lib/actions/katello/content_view/remove.rb +8 -12
  98. data/app/lib/actions/katello/content_view_version/import.rb +1 -1
  99. data/app/lib/actions/katello/content_view_version/incremental_update.rb +2 -2
  100. data/app/lib/actions/katello/flatpak/scan_remote.rb +62 -0
  101. data/app/lib/actions/katello/host/hypervisors.rb +1 -1
  102. data/app/lib/actions/katello/product/content_create.rb +28 -19
  103. data/app/lib/actions/katello/product/content_destroy.rb +6 -5
  104. data/app/lib/actions/katello/product/destroy.rb +1 -1
  105. data/app/lib/actions/katello/repository/clone_contents.rb +14 -0
  106. data/app/lib/actions/katello/repository/create.rb +24 -17
  107. data/app/lib/actions/katello/repository/create_container_push_root.rb +44 -0
  108. data/app/lib/actions/katello/repository/create_root.rb +5 -14
  109. data/app/lib/actions/katello/repository/destroy.rb +3 -3
  110. data/app/lib/actions/katello/repository/discover.rb +1 -1
  111. data/app/lib/actions/katello/repository/finish_upload.rb +13 -0
  112. data/app/lib/actions/katello/repository/import_upload.rb +1 -1
  113. data/app/lib/actions/katello/repository/sync.rb +16 -0
  114. data/app/lib/actions/katello/repository/update.rb +11 -20
  115. data/app/lib/actions/katello/repository/upload_files.rb +1 -1
  116. data/app/lib/actions/katello/repository_set/enable_repository.rb +1 -1
  117. data/app/lib/actions/katello/repository_set/scan_cdn.rb +1 -1
  118. data/app/lib/actions/katello/upstream_subscriptions/bind_entitlement.rb +1 -1
  119. data/app/lib/actions/pulp3/capsule_content/sync.rb +1 -1
  120. data/app/lib/actions/pulp3/content_view/delete_repository_references.rb +6 -2
  121. data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +1 -1
  122. data/app/lib/actions/pulp3/orchestration/repository/create.rb +6 -1
  123. data/app/lib/actions/pulp3/orchestration/repository/trigger_update_repo_cert_guard.rb +1 -1
  124. data/app/lib/actions/pulp3/repository/initialize.rb +17 -0
  125. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +1 -1
  126. data/app/lib/katello/api/constraints/register_with_activation_key_constraint.rb +11 -0
  127. data/app/lib/katello/concerns/base_template_scope_extensions.rb +1 -1
  128. data/app/lib/katello/http_resource.rb +6 -6
  129. data/app/lib/katello/messaging/stomp_connection.rb +4 -4
  130. data/app/lib/katello/resources/candlepin/activation_key.rb +1 -1
  131. data/app/lib/katello/resources/candlepin/owner.rb +1 -1
  132. data/app/lib/katello/resources/candlepin/product.rb +1 -1
  133. data/app/lib/katello/resources/candlepin.rb +1 -1
  134. data/app/lib/katello/resources/cdn/katello_cdn.rb +3 -3
  135. data/app/lib/katello/resources/cdn.rb +1 -1
  136. data/app/lib/katello/resources/discovery/container.rb +5 -3
  137. data/app/lib/katello/resources/discovery/yum.rb +3 -1
  138. data/app/lib/katello/resources/registry.rb +0 -3
  139. data/app/lib/katello/util/candlepin_repository_checker.rb +2 -2
  140. data/app/lib/katello/util/cveak_migrator.rb +38 -0
  141. data/app/lib/katello/util/deb.rb +9 -0
  142. data/app/lib/katello/util/deduplication_migrator.rb +8 -8
  143. data/app/lib/katello/util/model.rb +2 -2
  144. data/app/lib/katello/util/search.rb +5 -5
  145. data/app/lib/katello/util/task_status.rb +19 -19
  146. data/app/lib/katello/util/url_matcher.rb +3 -3
  147. data/app/lib/katello/validators/content_view_environment_org_validator.rb +2 -1
  148. data/app/lib/katello/validators/katello_url_format_validator.rb +2 -2
  149. data/app/mailers/katello/errata_mailer.rb +1 -4
  150. data/app/models/katello/activation_key.rb +123 -27
  151. data/app/models/katello/alternate_content_source.rb +5 -5
  152. data/app/models/katello/authorization/activation_key.rb +1 -1
  153. data/app/models/katello/authorization/content_view_environment.rb +7 -0
  154. data/app/models/katello/cdn_configuration.rb +1 -1
  155. data/app/models/katello/concerns/content_facet_host_extensions.rb +24 -2
  156. data/app/models/katello/concerns/host_managed_extensions.rb +29 -22
  157. data/app/models/katello/concerns/organization_extensions.rb +4 -4
  158. data/app/models/katello/concerns/redhat_extensions.rb +1 -1
  159. data/app/models/katello/concerns/smart_proxy_extensions.rb +84 -39
  160. data/app/models/katello/content.rb +3 -3
  161. data/app/models/katello/content_view.rb +15 -18
  162. data/app/models/katello/content_view_environment.rb +56 -15
  163. data/app/models/katello/content_view_environment_activation_key.rb +20 -0
  164. data/app/models/katello/content_view_erratum_filter_rule.rb +1 -1
  165. data/app/models/katello/content_view_filter.rb +2 -2
  166. data/app/models/katello/content_view_history.rb +1 -1
  167. data/app/models/katello/content_view_repository.rb +1 -1
  168. data/app/models/katello/content_view_version.rb +3 -3
  169. data/app/models/katello/content_view_version_export_history.rb +2 -2
  170. data/app/models/katello/content_view_version_import_history.rb +1 -1
  171. data/app/models/katello/events/delete_latest_content_view_version.rb +1 -1
  172. data/app/models/katello/flatpak_remote.rb +11 -0
  173. data/app/models/katello/flatpak_remote_repository.rb +12 -0
  174. data/app/models/katello/flatpak_remote_repository_manifest.rb +10 -0
  175. data/app/models/katello/glue/candlepin/activation_key.rb +1 -1
  176. data/app/models/katello/glue/candlepin/candlepin_object.rb +1 -1
  177. data/app/models/katello/glue/candlepin/pool.rb +1 -1
  178. data/app/models/katello/glue/pulp/repos.rb +1 -1
  179. data/app/models/katello/host/content_facet.rb +33 -17
  180. data/app/models/katello/host/info_provider.rb +2 -4
  181. data/app/models/katello/host/subscription_facet.rb +3 -3
  182. data/app/models/katello/host_available_module_stream.rb +1 -1
  183. data/app/models/katello/installed_product.rb +2 -2
  184. data/app/models/katello/kt_environment.rb +11 -6
  185. data/app/models/katello/ping.rb +2 -3
  186. data/app/models/katello/repository.rb +40 -6
  187. data/app/models/katello/rhel_lifecycle_status.rb +10 -10
  188. data/app/models/katello/root_repository.rb +14 -18
  189. data/app/models/katello/task_status.rb +1 -1
  190. data/app/models/katello/upstream_pool.rb +2 -2
  191. data/app/presenters/katello/product_content_presenter.rb +2 -2
  192. data/app/presenters/katello/repository_presenter.rb +3 -3
  193. data/app/presenters/katello/sync_status_presenter.rb +3 -3
  194. data/app/services/cert/certs.rb +6 -2
  195. data/app/services/katello/candlepin_event_listener.rb +1 -1
  196. data/app/services/katello/event_monitor/poller_thread.rb +1 -1
  197. data/app/services/katello/event_queue.rb +1 -1
  198. data/app/services/katello/product_content_finder.rb +10 -10
  199. data/app/services/katello/product_content_importer.rb +1 -1
  200. data/app/services/katello/pulp3/alternate_content_source.rb +2 -2
  201. data/app/services/katello/pulp3/ansible_collection.rb +1 -1
  202. data/app/services/katello/pulp3/api/apt.rb +4 -0
  203. data/app/services/katello/pulp3/content.rb +1 -0
  204. data/app/services/katello/pulp3/content_view_version/export.rb +3 -10
  205. data/app/services/katello/pulp3/content_view_version/export_validator.rb +1 -1
  206. data/app/services/katello/pulp3/content_view_version/import.rb +2 -2
  207. data/app/services/katello/pulp3/content_view_version/import_gpg_keys.rb +1 -1
  208. data/app/services/katello/pulp3/content_view_version/importable_products.rb +2 -2
  209. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +4 -4
  210. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +2 -2
  211. data/app/services/katello/pulp3/deb.rb +35 -1
  212. data/app/services/katello/pulp3/docker_manifest.rb +1 -1
  213. data/app/services/katello/pulp3/docker_manifest_list.rb +6 -2
  214. data/app/services/katello/pulp3/docker_tag.rb +1 -1
  215. data/app/services/katello/pulp3/erratum.rb +2 -2
  216. data/app/services/katello/pulp3/file_unit.rb +1 -1
  217. data/app/services/katello/pulp3/generic_content_unit.rb +1 -1
  218. data/app/services/katello/pulp3/module_stream.rb +2 -2
  219. data/app/services/katello/pulp3/repository/ansible_collection.rb +1 -1
  220. data/app/services/katello/pulp3/repository/apt.rb +22 -16
  221. data/app/services/katello/pulp3/repository/docker.rb +2 -2
  222. data/app/services/katello/pulp3/repository/file.rb +1 -1
  223. data/app/services/katello/pulp3/repository/generic.rb +1 -1
  224. data/app/services/katello/pulp3/repository/yum.rb +7 -7
  225. data/app/services/katello/pulp3/repository.rb +15 -9
  226. data/app/services/katello/pulp3/repository_mirror.rb +3 -3
  227. data/app/services/katello/registration_manager.rb +23 -6
  228. data/app/services/katello/repository_type.rb +3 -3
  229. data/app/services/katello/smart_proxy_helper.rb +3 -3
  230. data/app/services/katello/ui_notifications/content_view/delete_latest_version_failure.rb +1 -1
  231. data/app/services/katello/ui_notifications/subscriptions/expire_soon.rb +3 -3
  232. data/app/services/katello/ui_notifications/subscriptions/manifest_expire_soon_warning.rb +3 -3
  233. data/app/services/katello/ui_notifications/task_notification.rb +2 -2
  234. data/app/services/katello/upstream_connection_checker.rb +1 -1
  235. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +1 -1
  236. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +1 -1
  237. data/app/views/katello/api/v2/activation_keys/base.json.rabl +43 -8
  238. data/app/views/katello/api/v2/alternate_content_sources/base.json.rabl +1 -1
  239. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +5 -5
  240. data/app/views/katello/api/v2/common/_metadata.json.rabl +1 -1
  241. data/app/views/katello/api/v2/content_credentials/show.json.rabl +1 -1
  242. data/app/views/katello/api/v2/content_facet/base.json.rabl +15 -6
  243. data/app/views/katello/api/v2/content_facet/show.json.rabl +1 -1
  244. data/app/views/katello/api/v2/content_view_environments/index.json.rabl +7 -0
  245. data/app/views/katello/api/v2/content_view_environments/show.json.rabl +33 -0
  246. data/app/views/katello/api/v2/content_view_filter_rules/show.json.rabl +1 -1
  247. data/app/views/katello/api/v2/content_view_filters/show.json.rabl +1 -1
  248. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +3 -3
  249. data/app/views/katello/api/v2/content_views/base.json.rabl +4 -3
  250. data/app/views/katello/api/v2/content_views/show.json.rabl +1 -2
  251. data/app/views/katello/api/v2/debs/backend.json.rabl +7 -0
  252. data/app/views/katello/api/v2/debs/base.json.rabl +4 -0
  253. data/app/views/katello/api/v2/debs/show.json.rabl +2 -0
  254. data/app/views/katello/api/v2/docker_manifest_lists/show.json.rabl +1 -0
  255. data/app/views/katello/api/v2/docker_tags/_base.json.rabl +2 -2
  256. data/app/views/katello/api/v2/environments/show.json.rabl +4 -4
  257. data/app/views/katello/api/v2/gpg_keys/show.json.rabl +1 -1
  258. data/app/views/katello/api/v2/host_collections/base.json.rabl +1 -1
  259. data/app/views/katello/api/v2/hosts/base.json.rabl +2 -2
  260. data/app/views/katello/api/v2/package_groups/base.json.rabl +2 -2
  261. data/app/views/katello/api/v2/products/show.json.rabl +2 -2
  262. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -1
  263. data/app/views/katello/api/v2/repository_sets/show.json.rabl +1 -1
  264. data/app/views/katello/api/v2/subscriptions/base.json.rabl +1 -1
  265. data/app/views/katello/api/v2/subscriptions/show.json.rabl +3 -3
  266. data/app/views/katello/api/v2/sync_plans/show.json.rabl +1 -1
  267. data/app/views/katello/sync_management/index.html.erb +2 -2
  268. data/config/initializers/inflections.rb +11 -0
  269. data/config/katello.yaml.example +4 -10
  270. data/config/routes/api/registry.rb +0 -2
  271. data/config/routes/api/rhsm.rb +1 -4
  272. data/config/routes/api/v2.rb +2 -3
  273. data/db/migrate/20140716211853_repo_rename_feed_to_url.rb +1 -1
  274. data/db/migrate/20141003210742_add_docker_container_registry_url_to_providers.rb +1 -1
  275. data/db/migrate/20150224083608_remove_docker_registry_url.rb +1 -1
  276. data/db/migrate/20160808002834_add_files.rb +1 -1
  277. data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +1 -1
  278. data/db/migrate/20200818192230_update_system_purpose_status.rb +1 -1
  279. data/db/migrate/20201012172713_remove_gpg_key_perms.rb +1 -1
  280. data/db/migrate/20210322142311_add_auth_url_token_to_root_repositories.rb +1 -1
  281. data/db/migrate/20211220185935_clean_duplicate_content_units.rb +2 -2
  282. data/db/migrate/20230717150442_change_change_content_source_job_template_name.rb +1 -1
  283. data/db/migrate/20240207191223_remove_entitlement_mode_host_statuses.rb +1 -1
  284. data/db/migrate/20240508100434_add_content_id_to_katello_repository.rb +5 -0
  285. data/db/migrate/20240730163043_add_content_view_environment_activation_key.rb +87 -0
  286. data/db/migrate/20240806130902_add_more_deb_fields.rb +15 -0
  287. data/db/migrate/20240903194428_add_priority_to_content_view_environment_activation_key.rb +5 -0
  288. data/db/migrate/20241007200316_add_fields_to_katello_docker_manifest_list.rb +8 -0
  289. data/db/migrate/20241007212705_add_bootc_facts_to_content_facet.rb +27 -0
  290. data/db/migrate/20241025151105_remove_pulp3_migrated_hrefs_from_content_tables.rb +10 -0
  291. data/db/migrate/20241030181402_create_katello_flatpak_tables.rb +41 -0
  292. data/db/seeds.d/106-mail_notifications.rb +9 -9
  293. data/db/seeds.d/108-subcription-bookmarks.rb +1 -1
  294. data/db/seeds.d/109-katello-notification-blueprints.rb +21 -21
  295. data/db/seeds.d/110-content-view-autopublish.rb +5 -5
  296. data/db/seeds.d/111-container-image-bookmarks.rb +1 -1
  297. data/db/seeds.d/111-upgrade_tasks.rb +1 -1
  298. data/engines/bastion/app/assets/javascripts/bastion/i18n/i18n.module.js +4 -0
  299. data/engines/bastion/lib/bastion/engine.rb +1 -1
  300. data/engines/bastion/lib/bastion.rb +1 -1
  301. data/engines/bastion/vendor/assets/javascripts/bastion/angular-gettext/angular-gettext.js +5 -1
  302. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js +16 -0
  303. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +29 -15
  304. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-repository-sets.html +13 -0
  305. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +2 -0
  306. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-host-collections-modal.controller.js +2 -0
  307. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-host-collections-modal.html +4 -4
  308. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +0 -1
  309. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.routes.js +9 -0
  310. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-dependencies.html +54 -0
  311. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html +13 -1
  312. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb.html +8 -1
  313. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +1 -1
  314. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +4 -0
  315. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +11 -0
  316. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/activation_keys.scss +1 -1
  317. data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -1
  318. data/lib/katello/engine.rb +17 -15
  319. data/lib/katello/permission_creator.rb +51 -49
  320. data/lib/katello/permissions/host_permissions.rb +4 -4
  321. data/lib/katello/permissions/organization_permissions.rb +4 -4
  322. data/lib/katello/permissions/registry_permissions.rb +1 -1
  323. data/lib/katello/permissions/roles_permissions.rb +1 -1
  324. data/lib/katello/permissions/user_permissions.rb +1 -1
  325. data/lib/katello/plugin.rb +14 -8
  326. data/lib/katello/repository_types/docker.rb +4 -2
  327. data/lib/katello/repository_types/ostree.rb +5 -3
  328. data/lib/katello/repository_types/python.rb +1 -1
  329. data/lib/katello/repository_types/yum.rb +2 -1
  330. data/lib/katello/scheduled_jobs.rb +1 -1
  331. data/lib/katello/tasks/migrate_structure_content_for_deb.rake +105 -0
  332. data/lib/katello/tasks/receptor/extract_orgs.rake +1 -1
  333. data/lib/katello/tasks/reimport.rake +1 -1
  334. data/lib/katello/tasks/repository.rake +19 -9
  335. data/lib/katello/tasks/upgrades/4.1/reupdate_content_import_export_perms.rake +1 -1
  336. data/lib/katello/tasks/upgrades/4.3/fix_url_auth.rake +1 -1
  337. data/lib/katello/version.rb +1 -1
  338. data/locale/action_names.rb +92 -1
  339. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  340. data/locale/bn/katello.po +259 -28
  341. data/locale/bn_IN/katello.po +258 -27
  342. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  343. data/locale/ca/katello.po +258 -27
  344. data/locale/cs/katello.po +258 -30
  345. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  346. data/locale/cs_CZ/katello.po +258 -27
  347. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  348. data/locale/de/katello.po +259 -28
  349. data/locale/de_AT/katello.po +258 -27
  350. data/locale/de_DE/katello.po +258 -27
  351. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  352. data/locale/el/katello.po +258 -27
  353. data/locale/en/katello.po +258 -27
  354. data/locale/en_GB/katello.po +258 -27
  355. data/locale/en_US/katello.po +258 -27
  356. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  357. data/locale/es/katello.po +259 -28
  358. data/locale/et_EE/katello.po +258 -27
  359. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  360. data/locale/fr/katello.po +259 -28
  361. data/locale/gl/katello.po +258 -27
  362. data/locale/gu/katello.po +258 -27
  363. data/locale/he_IL/katello.po +258 -27
  364. data/locale/hi/katello.po +258 -27
  365. data/locale/id/katello.po +258 -27
  366. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  367. data/locale/it/katello.po +259 -28
  368. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  369. data/locale/ja/katello.po +259 -28
  370. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  371. data/locale/ka/katello.po +259 -28
  372. data/locale/katello.pot +1041 -696
  373. data/locale/kn/katello.po +258 -27
  374. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  375. data/locale/ko/katello.po +259 -28
  376. data/locale/ml_IN/katello.po +258 -27
  377. data/locale/mr/katello.po +258 -27
  378. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  379. data/locale/nl_NL/katello.po +258 -27
  380. data/locale/or/katello.po +258 -27
  381. data/locale/pa/katello.po +258 -27
  382. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  383. data/locale/pl/katello.po +258 -27
  384. data/locale/pl_PL/katello.po +258 -27
  385. data/locale/pt/katello.po +258 -27
  386. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  387. data/locale/pt_BR/katello.po +259 -28
  388. data/locale/ro/katello.po +258 -27
  389. data/locale/ro_RO/katello.po +258 -27
  390. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  391. data/locale/ru/katello.po +259 -28
  392. data/locale/sl/katello.po +258 -27
  393. data/locale/sv_SE/katello.po +258 -27
  394. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  395. data/locale/ta/katello.po +259 -28
  396. data/locale/ta_IN/katello.po +258 -27
  397. data/locale/te/katello.po +258 -27
  398. data/locale/tr/katello.po +258 -27
  399. data/locale/vi/katello.po +258 -27
  400. data/locale/vi_VN/katello.po +258 -27
  401. data/locale/zh/katello.po +258 -27
  402. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  403. data/locale/zh_CN/katello.po +259 -28
  404. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  405. data/locale/zh_TW/katello.po +259 -28
  406. data/vendor/assets/javascripts/katello/chosen.jquery.js +2 -2
  407. data/vendor/assets/javascripts/katello/jquery.ba-bbq.js +1 -1
  408. data/vendor/assets/javascripts/katello/jquery.hoverIntent.js +2 -2
  409. data/webpack/ForemanColumnExtensions/index.js +1 -1
  410. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +113 -86
  411. data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +7 -2
  412. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +31 -4
  413. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +1 -1
  414. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +1 -7
  415. data/webpack/components/extensions/RegistrationCommands/helpers.js +15 -0
  416. data/webpack/components/extensions/RegistrationCommands/index.js +3 -9
  417. data/webpack/global_index.js +11 -4
  418. data/webpack/redux/actions/RedHatRepositories/helpers.js +8 -6
  419. data/webpack/scenes/ActivationKeys/Details/ActivationKeyDetails.js +4 -0
  420. data/webpack/scenes/ActivationKeys/Details/components/CVEDetailsCard.js +37 -0
  421. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +1 -2
  422. data/webpack/scenes/Hosts/ChangeContentSource/helpers.js +2 -8
  423. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +22 -2
  424. data/webpack/scenes/SmartProxy/ExpandedSmartProxyRepositories.js +39 -20
  425. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +2 -1
  426. data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +6 -4
  427. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +62 -0
  428. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +6 -4
  429. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +1 -1
  430. metadata +86 -76
  431. data/app/lib/katello/api/constraints/activation_key_constraint.rb +0 -7
  432. /data/app/lib/katello/{api → routing}/mapper_extensions.rb +0 -0
@@ -92,7 +92,7 @@ module Katello
92
92
  def distribution_options(path, options = {})
93
93
  ret = {
94
94
  base_path: path,
95
- name: "#{backend_object_name}"
95
+ name: "#{backend_object_name}",
96
96
  }
97
97
  ret[:content_guard] = repo.unprotected ? nil : content_guard_href
98
98
  ret[:publication] = options[:publication] if options.key? :publication
@@ -145,7 +145,7 @@ module Katello
145
145
  connect_timeout: Setting[:sync_connect_timeout_v2],
146
146
  sock_connect_timeout: Setting[:sync_sock_connect_timeout],
147
147
  sock_read_timeout: Setting[:sync_sock_read_timeout],
148
- rate_limit: Setting[:download_rate_limit]
148
+ rate_limit: Setting[:download_rate_limit],
149
149
  }
150
150
  remote_options.merge!({download_concurrency: repo.download_concurrency}) if repo.download_concurrency
151
151
  remote_options.merge!(ssl_remote_options)
@@ -157,7 +157,7 @@ module Katello
157
157
  client_cert: ueber_cert[:cert],
158
158
  client_key: ueber_cert[:key],
159
159
  ca_cert: ::Cert::Certs.ca_cert,
160
- tls_validation: true
160
+ tls_validation: true,
161
161
  }
162
162
  end
163
163
 
@@ -154,19 +154,24 @@ module Katello
154
154
  end
155
155
  end
156
156
 
157
+ # rubocop:disable Metrics/MethodLength
157
158
  def register_host(host, consumer_params, content_view_environments, activation_keys = [])
158
159
  new_host = host.new_record?
159
160
  unless new_host
160
161
  host.save!
161
162
  # Keep the kickstart repository ID so the host's Medium isn't unset
162
163
  # Important for registering a host during provisioning
163
- unregister_host(host, :unregistering => true, :keep_kickstart_repository => true)
164
+ begin
165
+ unregister_host(host, :unregistering => true, :keep_kickstart_repository => true)
166
+ rescue RestClient::Gone
167
+ Rails.logger.debug("Host %s has been removed in preparation for reregistration" % host&.name)
168
+ end
164
169
  host.reload
165
170
  end
166
171
 
167
172
  if activation_keys.present?
168
173
  if content_view_environments.blank?
169
- content_view_environments = [lookup_content_view_environment(activation_keys)]
174
+ content_view_environments = lookup_content_view_environments(activation_keys)
170
175
  end
171
176
  set_host_collections(host, activation_keys)
172
177
  end
@@ -194,6 +199,7 @@ module Katello
194
199
  finalize_registration(host)
195
200
  end
196
201
  end
202
+ # rubocop:enable Metrics/MethodLength
197
203
 
198
204
  def check_registration_services
199
205
  ping_results = {}
@@ -246,7 +252,7 @@ module Katello
246
252
  host.subscription_facet.save!
247
253
  host.refresh_statuses([
248
254
  ::Katello::ErrataStatus,
249
- ::Katello::RhelLifecycleStatus
255
+ ::Katello::RhelLifecycleStatus,
250
256
  ])
251
257
  end
252
258
 
@@ -264,12 +270,23 @@ module Katello
264
270
  host.host_collection_ids = host_collection_ids
265
271
  end
266
272
 
267
- def lookup_content_view_environment(activation_keys)
273
+ def lookup_content_view_environments(activation_keys)
274
+ # If the setting is on, we combine all CVEs from all AKs
275
+ if Setting['allow_multiple_content_views']
276
+ cves = activation_keys.map do |act_key|
277
+ act_key.content_view_environments
278
+ end
279
+ cves = cves.flatten.uniq
280
+ fail _('At least one activation key must have a lifecycle environment and content view assigned to it') if cves.blank?
281
+ return cves
282
+ end
283
+
284
+ # If the setting is off, we stick with the previous behavior (the last AK with a valid cv/lce wins).
268
285
  activation_key = activation_keys.reverse.detect do |act_key|
269
- act_key.environment && act_key.content_view
286
+ act_key.content_view_environments.any?
270
287
  end
271
288
  if activation_key
272
- ::Katello::ContentViewEnvironment.where(:content_view_id => activation_key.content_view, :environment_id => activation_key.environment).first
289
+ ::Katello::ContentViewEnvironment.where(:content_view_id => activation_key.content_view, :environment_id => activation_key.environment)
273
290
  else
274
291
  fail _('At least one activation key must have a lifecycle environment and content view assigned to it')
275
292
  end
@@ -123,7 +123,7 @@ module Katello
123
123
  :generic_remote_options => translated_generic_remote_options,
124
124
  :import_attributes => translated_import_attributes,
125
125
  :url_description => _(@url_description),
126
- :content_types => content_types.as_json
126
+ :content_types => content_types.as_json,
127
127
  }
128
128
  end
129
129
 
@@ -170,7 +170,7 @@ module Katello
170
170
  generic: false,
171
171
  removable: removable,
172
172
  uploadable: uploadable,
173
- indexed: index
173
+ indexed: index,
174
174
  }
175
175
  end
176
176
 
@@ -220,7 +220,7 @@ module Katello
220
220
  :generic => true,
221
221
  :pluralized_label => content_type.pluralize,
222
222
  :pluralized_name => pluralized_name,
223
- :details_columns => details_columns
223
+ :details_columns => details_columns,
224
224
  }
225
225
  )
226
226
  end
@@ -47,9 +47,9 @@ module Katello
47
47
 
48
48
  def repositories_available_to_capsule(environments = nil, content_view = nil)
49
49
  environments = @smart_proxy.lifecycle_environments if environments.nil?
50
- yum_repos = Katello::Repository.in_environment(environments)
51
- yum_repos = yum_repos.in_content_views([content_view]) if content_view
52
- yum_repos.smart_proxy_syncable
50
+ repos = Katello::Repository.in_environment(environments)
51
+ repos = repos.in_content_views([content_view]) if content_view
52
+ repos.smart_proxy_syncable
53
53
  end
54
54
 
55
55
  def unsyncable_content_types
@@ -1,7 +1,7 @@
1
1
  module Katello
2
2
  module UINotifications
3
3
  module ContentView
4
- class DelelteLatestVersionFailure < ::UINotifications::Base
4
+ class DeleteLatestVersionFailure < ::UINotifications::Base
5
5
  private
6
6
 
7
7
  def create
@@ -48,9 +48,9 @@ module Katello
48
48
  {
49
49
  :href => "/subscriptions?search=expires<\"#{Setting[:expire_soon_days]} days from now\"",
50
50
  :title => _('Subscriptions'),
51
- :external => true
52
- }
53
- ]
51
+ :external => true,
52
+ },
53
+ ],
54
54
  }
55
55
  end
56
56
 
@@ -58,9 +58,9 @@ module Katello
58
58
  {
59
59
  :href => "/subscriptions",
60
60
  :title => _('Subscriptions'),
61
- :external => false
62
- }
63
- ]
61
+ :external => false,
62
+ },
63
+ ],
64
64
  }
65
65
  end
66
66
 
@@ -16,8 +16,8 @@ module Katello
16
16
  :links => [
17
17
  {
18
18
  :path_method => :foreman_tasks_task_path,
19
- :title => _('Task detail')
20
- }
19
+ :title => _('Task detail'),
20
+ },
21
21
  ]
22
22
  ).actions
23
23
  end
@@ -5,7 +5,7 @@ module Katello
5
5
  Katello::Errors::ManifestExpired,
6
6
  Katello::Errors::UpstreamConsumerGone,
7
7
  Katello::Errors::UpstreamConsumerNotFound,
8
- Katello::Errors::NoManifestImported
8
+ Katello::Errors::NoManifestImported,
9
9
  ].freeze
10
10
 
11
11
  def initialize(organization)
@@ -15,7 +15,7 @@ foreign_input_sets:
15
15
  exclude: action,package
16
16
  %>
17
17
 
18
- <% advisory_ids = @host.advisory_ids(search: input("Errata search query")) -%>
18
+ <% advisory_ids = @host.advisory_ids(search: input("Errata search query"), check_installable_for_host: false) -%>
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
 
@@ -12,7 +12,7 @@ template_inputs:
12
12
  required: false
13
13
  %>
14
14
 
15
- <% advisory_ids = @host.advisory_ids(search: input("Errata search query")) -%>
15
+ <% advisory_ids = @host.advisory_ids(search: input("Errata search query"), check_installable_for_host: false) -%>
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
 
@@ -1,18 +1,53 @@
1
1
  extends 'katello/api/v2/common/org_reference'
2
2
  extends 'katello/api/v2/common/timestamps'
3
3
 
4
- attributes :id, :name, :description, :unlimited_hosts, :auto_attach
4
+ attributes :id, :name, :description, :unlimited_hosts, :auto_attach, :content_view_environment_labels
5
5
 
6
- attributes :content_view_id
6
+ node :multi_content_view_environment do |ak|
7
+ ak.multi_content_view_environment?
8
+ end
7
9
 
8
- child :content_view => :content_view do
9
- attributes :id, :name
10
+ child :content_view_environments => :content_view_environments do
11
+ node :content_view do |cve|
12
+ {
13
+ id: cve.content_view&.id,
14
+ name: cve.content_view&.name,
15
+ composite: cve.content_view&.composite,
16
+ content_view_version: cve.content_view_version&.version,
17
+ content_view_version_id: cve.content_view_version&.id,
18
+ content_view_version_latest: cve.content_view_version&.latest?,
19
+ content_view_default: cve.content_view&.default?,
20
+ content_view_environment_id: cve.id,
21
+ }
22
+ end
23
+ node :lifecycle_environment do |cve|
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 :label do |cve|
31
+ cve.label
32
+ end
33
+ end
34
+
35
+ # single cv/lce for backward compatibility
36
+ node :content_view_id do |ak|
37
+ ak.single_content_view&.id
38
+ end
39
+
40
+ node :content_view do |ak|
41
+ ak.single_content_view&.slice(:id, :name)
42
+ end
43
+
44
+ node :environment_id do |ak|
45
+ ak.single_lifecycle_environment&.id
10
46
  end
11
47
 
12
- child :environment => :environment do
13
- attributes :name, :id
48
+ node :environment do |ak|
49
+ ak.single_lifecycle_environment&.slice(:id, :name)
14
50
  end
15
- attributes :environment_id
16
51
 
17
52
  attributes :usage_count, :user_id, :max_hosts, :system_template_id, :release_version, :purpose_usage, :purpose_role
18
53
 
@@ -24,7 +59,7 @@ node :permissions do |activation_key|
24
59
  {
25
60
  :view_activation_keys => activation_key.readable?,
26
61
  :edit_activation_keys => activation_key.editable?,
27
- :destroy_activation_keys => activation_key.deletable?
62
+ :destroy_activation_keys => activation_key.deletable?,
28
63
  }
29
64
  end
30
65
 
@@ -33,7 +33,7 @@ if ::Foreman::Cast.to_bool(params.fetch(:include_permissions, false))
33
33
  {
34
34
  :view_alternate_content_sources => alternate_content_source.readable?,
35
35
  :edit_alternate_content_sources => alternate_content_source.editable?,
36
- :destroy_alternate_content_sources => alternate_content_source.deletable?
36
+ :destroy_alternate_content_sources => alternate_content_source.deletable?,
37
37
  }
38
38
  end
39
39
  end
@@ -45,7 +45,7 @@ child @lifecycle_environments => :lifecycle_environments do
45
45
  :id => last_env_sync_task&.id,
46
46
  :started_at => last_env_sync_task&.started_at,
47
47
  :result => last_env_sync_task&.result,
48
- :last_sync_words => last_env_sync_task.try(:started_at) ? time_ago_in_words(Time.parse(last_env_sync_task.started_at.to_s)) : nil
48
+ :last_sync_words => last_env_sync_task.try(:started_at) ? time_ago_in_words(Time.parse(last_env_sync_task.started_at.to_s)) : nil,
49
49
  }
50
50
  attributes
51
51
  end
@@ -53,7 +53,7 @@ child @lifecycle_environments => :lifecycle_environments do
53
53
  if @capsule.has_feature?(SmartProxy::PULP_NODE_FEATURE) || @capsule.has_feature?(SmartProxy::PULP3_FEATURE)
54
54
  node :counts do |env|
55
55
  {
56
- :content_views => env.content_views.non_default.count
56
+ :content_views => env.content_views.non_default.count,
57
57
  }
58
58
  end
59
59
 
@@ -71,7 +71,7 @@ child @lifecycle_environments => :lifecycle_environments do
71
71
  :default => content_view.default,
72
72
  :up_to_date => @capsule.repos_pending_sync(env, content_view).empty?,
73
73
  :counts => {
74
- :repositories => ::Katello::ContentViewVersion.in_environment(env).find_by(:content_view => content_view)&.archived_repos&.count
74
+ :repositories => ::Katello::ContentViewVersion.in_environment(env).find_by(:content_view => content_view)&.archived_repos&.count,
75
75
  },
76
76
  :repositories => ::Katello::ContentViewVersion.in_environment(env)&.find_by(:content_view => content_view)&.archived_repos&.map do |repo|
77
77
  {
@@ -79,9 +79,9 @@ child @lifecycle_environments => :lifecycle_environments do
79
79
  :name => repo.name,
80
80
  :library_id => repo.library_instance_id,
81
81
  :product_id => repo.product_id,
82
- :content_type => repo.content_type
82
+ :content_type => repo.content_type,
83
83
  }
84
- end
84
+ end,
85
85
  }
86
86
  attributes
87
87
  end
@@ -10,6 +10,6 @@ node(:search) { params[:search] }
10
10
  node(:sort) do
11
11
  {
12
12
  :by => params[:sort_by],
13
- :order => params[:sort_order]
13
+ :order => params[:sort_order],
14
14
  }
15
15
  end
@@ -116,6 +116,6 @@ node :permissions do |content_credential|
116
116
  {
117
117
  :view_content_credenials => content_credential.readable?,
118
118
  :edit_content_credenials => content_credential.editable?,
119
- :destroy_content_credenials => content_credential.deletable?
119
+ :destroy_content_credenials => content_credential.deletable?,
120
120
  }
121
121
  end
@@ -17,21 +17,27 @@ child :content_view_environments => :content_view_environments do
17
17
  content_view_version: cve.content_view_version&.version,
18
18
  content_view_version_id: cve.content_view_version&.id,
19
19
  content_view_version_latest: cve.content_view_version&.latest?,
20
- content_view_default: cve.content_view&.default?
20
+ content_view_default: cve.content_view&.default?,
21
21
  }
22
22
  end
23
23
  node :lifecycle_environment do |cve|
24
24
  {
25
25
  id: cve.lifecycle_environment&.id,
26
26
  name: cve.lifecycle_environment&.name,
27
- lifecycle_environment_library: cve.lifecycle_environment&.library?
27
+ lifecycle_environment_library: cve.lifecycle_environment&.library?,
28
28
  }
29
29
  end
30
- node :candlepin_name do |cve|
31
- cve.candlepin_name
30
+ node :label do |cve|
31
+ cve.label
32
32
  end
33
33
  end
34
34
 
35
+ attributes :content_view_environment_labels
36
+
37
+ node :multi_content_view_environment do |content_facet|
38
+ content_facet.multi_content_view_environment?
39
+ end
40
+
35
41
  # single cv/lce for backward compatibility
36
42
  node :content_view do |content_facet|
37
43
  content_view = content_facet.single_content_view
@@ -39,7 +45,7 @@ node :content_view do |content_facet|
39
45
  {
40
46
  :id => content_view.id,
41
47
  :name => content_view.name,
42
- :composite => content_view.composite?
48
+ :composite => content_view.composite?,
43
49
  }
44
50
  end
45
51
  end
@@ -49,7 +55,7 @@ node :lifecycle_environment do |content_facet|
49
55
  if lifecycle_environment.present?
50
56
  {
51
57
  :id => lifecycle_environment.id,
52
- :name => lifecycle_environment.name
58
+ :name => lifecycle_environment.name,
53
59
  }
54
60
  end
55
61
  end
@@ -61,3 +67,6 @@ end
61
67
  child :kickstart_repository => :kickstart_repository do
62
68
  attributes :id, :name
63
69
  end
70
+
71
+ attributes :bootc_booted_image, :bootc_booted_digest, :bootc_available_image, :bootc_available_digest,
72
+ :bootc_staged_image, :bootc_staged_digest, :bootc_rollback_image, :bootc_rollback_digest
@@ -8,7 +8,7 @@ child :content_facet => :content_facet_attributes do
8
8
  {
9
9
  :content_view_version => version.version,
10
10
  :content_view_version_id => version.id,
11
- :content_view_version_latest => version.latest?
11
+ :content_view_version_latest => version.latest?,
12
12
  }
13
13
  end
14
14
  end
@@ -0,0 +1,7 @@
1
+ object false
2
+
3
+ extends "katello/api/v2/common/metadata"
4
+
5
+ child @collection[:results] => :results do
6
+ extends "katello/api/v2/content_view_environments/show"
7
+ end
@@ -0,0 +1,33 @@
1
+ object @resource
2
+ extends 'katello/api/v2/common/identifier'
3
+
4
+ extends 'katello/api/v2/common/timestamps'
5
+ attributes :default_environment? => :default
6
+
7
+ child :organization => :organization do
8
+ attributes :name, :label, :id
9
+ end
10
+
11
+ node :content_view do |cve|
12
+ cve.content_view&.slice(:id, :name, :label, :default)
13
+ end
14
+
15
+ node :lifecycle_environment do |cve|
16
+ cve.environment&.slice(:id, :name, :label, :library)
17
+ end
18
+
19
+ node :environment do |cve|
20
+ cve.environment&.slice(:id, :name, :label, :library)
21
+ end
22
+
23
+ child :activation_keys => :activation_keys do
24
+ attributes :id, :name, :label
25
+ end
26
+
27
+ node :activation_keys_count do |cve|
28
+ cve.activation_keys.count
29
+ end
30
+
31
+ node :hosts_count do |cve|
32
+ cve.hosts.count
33
+ end
@@ -20,7 +20,7 @@ if @resource&.try(:module_stream)
20
20
  {
21
21
  :module_stream_id => rule.module_stream.id,
22
22
  :module_stream_name => rule.module_stream.name,
23
- :module_stream_stream => rule.module_stream.stream
23
+ :module_stream_stream => rule.module_stream.stream,
24
24
  }
25
25
  end
26
26
  end
@@ -20,7 +20,7 @@ child :content_view => :content_view do
20
20
  :package => repo.rpms.count,
21
21
  :package_group => repo.package_groups.count,
22
22
  :erratum => repo.errata.count,
23
- :module_stream => repo.module_streams.count
23
+ :module_stream => repo.module_streams.count,
24
24
  }
25
25
  end
26
26
  end
@@ -42,7 +42,7 @@ end
42
42
 
43
43
  node :permissions do |cvv|
44
44
  {
45
- :deletable => cvv.removable?
45
+ :deletable => cvv.removable?,
46
46
  }
47
47
  end
48
48
 
@@ -61,7 +61,7 @@ child :environments => :environments do
61
61
  :readable => env.readable?,
62
62
  :promotable_or_removable => env.promotable_or_removable?,
63
63
  :all_hosts_editable => version.all_hosts_editable?(env),
64
- :all_keys_editable => Katello::ActivationKey.all_editable?(version.content_view_id, env.id)
64
+ :all_keys_editable => Katello::ActivationKey.all_editable?(version.content_view_id, env.id),
65
65
  }
66
66
  end
67
67
 
@@ -70,7 +70,7 @@ child :environments => :environments do
70
70
  end
71
71
 
72
72
  node :activation_key_count do |env|
73
- Katello::ActivationKey.where(:environment_id => env.id).where(:content_view_id => version.content_view_id).count
73
+ Katello::ActivationKey.with_content_views(version.content_view).with_environments(env).count
74
74
  end
75
75
  end
76
76
 
@@ -13,6 +13,7 @@ attributes :generated_for
13
13
  attributes :related_cv_count
14
14
  attributes :related_composite_cvs
15
15
  attributes :filtered? => :filtered
16
+ attributes :needs_publish? => :needs_publish
16
17
 
17
18
  node :next_version do |content_view|
18
19
  content_view.next_version.to_f.to_s
@@ -44,9 +45,9 @@ node :environments do |cv|
44
45
  id: env.id,
45
46
  label: env.label,
46
47
  name: env.name,
47
- activation_keys: cv&.activation_keys&.in_environment(env)&.ids,
48
+ activation_keys: cv&.activation_keys&.in_environments([env])&.ids,
48
49
  hosts: cv&.hosts&.in_environments([env])&.ids,
49
- permissions: {readable: env.readable?}
50
+ permissions: {readable: env.readable?},
50
51
  }
51
52
  end
52
53
  end
@@ -81,7 +82,7 @@ if params.key?(:include_permissions)
81
82
  :edit_content_views => cv.editable?,
82
83
  :destroy_content_views => cv.deletable?,
83
84
  :publish_content_views => cv.publishable?,
84
- :promote_or_remove_content_views => cv.promotable_or_removable?
85
+ :promote_or_remove_content_views => cv.promotable_or_removable?,
85
86
  }
86
87
  end
87
88
  end
@@ -3,7 +3,6 @@ object @resource
3
3
  extends "katello/api/v2/content_views/base"
4
4
 
5
5
  attributes :content_host_count
6
- attributes :needs_publish? => :needs_publish
7
6
 
8
7
  node :errors do
9
8
  unless @resource.valid?
@@ -17,7 +16,7 @@ child :duplicate_repositories_to_publish => :duplicate_repositories_to_publish d
17
16
  @resource.components_with_repo(repo).map do |component|
18
17
  {
19
18
  :content_view_name => component.content_view.name,
20
- :content_view_version => component.version
19
+ :content_view_version => component.version,
21
20
  }
22
21
  end
23
22
  end
@@ -0,0 +1,7 @@
1
+ attributes :depends
2
+ attributes :pre_depends
3
+ attributes :recommends
4
+ attributes :suggests
5
+ attributes :enhances
6
+ attributes :breaks
7
+ attributes :conflicts
@@ -11,6 +11,10 @@ attributes :nav
11
11
  attributes :nva
12
12
  attributes :pulp_id
13
13
  attributes :pulp_id => :uuid
14
+ attributes :section
15
+ attributes :maintainer
16
+ attributes :homepage
17
+ attributes :installed_size
14
18
 
15
19
  node(:hosts_available_count) { |m| m.hosts_available(params[:organization_id]).count }
16
20
  node(:hosts_applicable_count) { |m| m.hosts_applicable(params[:organization_id]).count }
@@ -1,3 +1,5 @@
1
1
  object @resource
2
2
 
3
3
  extends "katello/api/v2/debs/base"
4
+ extends "katello/api/v2/debs/backend",
5
+ :object => SmartProxy.pulp_primary!.content_service("deb").new(@resource.pulp_id)
@@ -1,6 +1,7 @@
1
1
  object @resource
2
2
 
3
3
  attributes :id, :schema_version, :digest, :manifest_type
4
+ attributes :annotations, :labels, :is_bootable, :is_flatpak
4
5
 
5
6
  child :docker_tags => :tags do
6
7
  attributes :associated_meta_tag_identifier => :id
@@ -24,7 +24,7 @@ if @organization
24
24
  attributes = {
25
25
  :id => repo.id,
26
26
  :name => repo.name,
27
- :full_path => repo.full_path
27
+ :full_path => repo.full_path,
28
28
  }
29
29
  attributes
30
30
  end
@@ -34,7 +34,7 @@ if @organization
34
34
  product = first_repo&.product
35
35
  attributes = {
36
36
  :id => product&.id,
37
- :name => product&.name
37
+ :name => product&.name,
38
38
  }
39
39
  attributes
40
40
  end
@@ -11,7 +11,7 @@ if @content_source.present?
11
11
  {
12
12
  :name => @content_source.name,
13
13
  :id => @content_source_id,
14
- :environment_is_associated => env.content_source_associated?(@content_source)
14
+ :environment_is_associated => env.content_source_associated?(@content_source),
15
15
  }
16
16
  end
17
17
  end
@@ -31,7 +31,7 @@ end
31
31
  node :counts do |env|
32
32
  counts = {
33
33
  :content_hosts => env.hosts.authorized("view_hosts").count,
34
- :content_views => env.content_views.non_default.count
34
+ :content_views => env.content_views.non_default.count,
35
35
  }
36
36
  if env.library?
37
37
  repos = env.repositories.in_default_view
@@ -54,7 +54,7 @@ node :permissions do |env|
54
54
  :view_lifecycle_environments => env.readable?,
55
55
  :edit_lifecycle_environments => env.editable?,
56
56
  :destroy_lifecycle_environments => env.deletable?,
57
- :promote_or_remove_content_views_to_environments => env.promotable_or_removable?
57
+ :promote_or_remove_content_views_to_environments => env.promotable_or_removable?,
58
58
  }
59
59
  end
60
60
 
@@ -62,7 +62,7 @@ node :content_views do |env|
62
62
  env.content_views.non_default.map do |cv|
63
63
  {
64
64
  :name => cv.name,
65
- :id => cv.id
65
+ :id => cv.id,
66
66
  }
67
67
  end
68
68
  end
@@ -32,6 +32,6 @@ node :permissions do |gpg_key|
32
32
  {
33
33
  :view_gpg_keys => gpg_key.readable?,
34
34
  :edit_gpg_keys => gpg_key.editable?,
35
- :destroy_gpg_keys => gpg_key.deletable?
35
+ :destroy_gpg_keys => gpg_key.deletable?,
36
36
  }
37
37
  end