katello 4.0.3 → 4.1.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 (563) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +0 -33
  3. data/app/assets/stylesheets/katello/contents.scss +1 -1
  4. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +5 -11
  5. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -9
  6. data/app/controllers/katello/api/v2/activation_keys_controller.rb +10 -24
  7. data/app/controllers/katello/api/v2/api_controller.rb +15 -3
  8. data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
  9. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +1 -8
  10. data/app/controllers/katello/api/v2/content_exports_controller.rb +1 -14
  11. data/app/controllers/katello/api/v2/content_imports_controller.rb +38 -15
  12. data/app/controllers/katello/api/v2/content_uploads_controller.rb +1 -1
  13. data/app/controllers/katello/api/v2/content_view_components_controller.rb +22 -1
  14. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +6 -1
  15. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +2 -59
  16. data/app/controllers/katello/api/v2/content_views_controller.rb +3 -58
  17. data/app/controllers/katello/api/v2/host_errata_controller.rb +7 -6
  18. data/app/controllers/katello/api/v2/host_packages_controller.rb +4 -4
  19. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +18 -22
  20. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +16 -16
  21. data/app/controllers/katello/api/v2/organizations_controller.rb +2 -1
  22. data/app/controllers/katello/api/v2/package_groups_controller.rb +4 -0
  23. data/app/controllers/katello/api/v2/repositories_controller.rb +13 -12
  24. data/app/controllers/katello/api/v2/repository_sets_controller.rb +50 -4
  25. data/app/controllers/katello/api/v2/subscriptions_controller.rb +7 -1
  26. data/app/controllers/katello/concerns/api/api_controller.rb +10 -0
  27. data/app/controllers/katello/concerns/api/v2/registration_commands_controller_extensions.rb +46 -0
  28. data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +8 -0
  29. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +31 -22
  30. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +0 -8
  31. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +1 -1
  32. data/app/controllers/katello/concerns/registration_commands_controller_extensions.rb +34 -0
  33. data/app/helpers/katello/katello_urls_helper.rb +23 -0
  34. data/app/lib/actions/candlepin/owner/import.rb +10 -3
  35. data/app/lib/actions/candlepin/product/content_update.rb +1 -1
  36. data/app/lib/actions/foreman/environment/destroy.rb +2 -2
  37. data/app/lib/actions/katello/agent_action.rb +1 -6
  38. data/app/lib/actions/katello/capsule_content/refresh_repos.rb +0 -7
  39. data/app/lib/actions/katello/capsule_content/sync.rb +1 -1
  40. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +1 -2
  41. data/app/lib/actions/katello/content_view/add_to_environment.rb +9 -7
  42. data/app/lib/actions/katello/content_view/incremental_updates.rb +3 -10
  43. data/app/lib/actions/katello/content_view/presenters/incremental_updates_presenter.rb +2 -3
  44. data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -4
  45. data/app/lib/actions/katello/content_view/publish.rb +21 -31
  46. data/app/lib/actions/katello/content_view_environment/destroy.rb +0 -5
  47. data/app/lib/actions/katello/content_view_version/auto_create_products.rb +22 -0
  48. data/app/lib/actions/katello/content_view_version/auto_create_repositories.rb +22 -0
  49. data/app/lib/actions/katello/content_view_version/destroy.rb +0 -10
  50. data/app/lib/actions/katello/content_view_version/export.rb +20 -22
  51. data/app/lib/actions/katello/content_view_version/import.rb +27 -13
  52. data/app/lib/actions/katello/content_view_version/import_library.rb +4 -2
  53. data/app/lib/actions/katello/content_view_version/incremental_update.rb +12 -67
  54. data/app/lib/actions/katello/content_view_version/republish_repositories.rb +0 -4
  55. data/app/lib/actions/katello/content_view_version/reset_content_view_repositories_from_metadata.rb +11 -0
  56. data/app/lib/actions/katello/foreman/content_update.rb +0 -3
  57. data/app/lib/actions/katello/host/auto_attach_subscriptions.rb +0 -4
  58. data/app/lib/actions/katello/organization/manifest_import.rb +7 -1
  59. data/app/lib/actions/katello/organization/manifest_refresh.rb +28 -7
  60. data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +2 -2
  61. data/app/lib/actions/katello/product/create.rb +0 -1
  62. data/app/lib/actions/katello/repository/check_matching_content.rb +4 -3
  63. data/app/lib/actions/katello/repository/destroy.rb +1 -1
  64. data/app/lib/actions/katello/repository/discover.rb +1 -1
  65. data/app/lib/actions/katello/repository/filtered_index_content.rb +1 -4
  66. data/app/lib/actions/katello/repository/import_upload.rb +0 -1
  67. data/app/lib/actions/katello/repository/update.rb +0 -1
  68. data/app/lib/actions/middleware/record_smart_proxy_sync_history.rb +0 -5
  69. data/app/lib/actions/pulp/repository/create.rb +1 -7
  70. data/app/lib/actions/pulp/repository/distributor_publish.rb +2 -10
  71. data/app/lib/actions/pulp/repository/sync.rb +1 -3
  72. data/app/lib/actions/pulp3/capsule_content/refresh_content_guard.rb +17 -0
  73. data/app/lib/actions/pulp3/content_guard/refresh.rb +10 -6
  74. data/app/lib/actions/pulp3/content_view_version/create_export_history.rb +57 -0
  75. data/app/lib/actions/pulp3/content_view_version/create_import_history.rb +34 -0
  76. data/app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb +2 -3
  77. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +34 -51
  78. data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +2 -2
  79. data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +13 -1
  80. data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +1 -1
  81. data/app/lib/actions/pulp3/orchestration/repository/sync.rb +1 -0
  82. data/app/lib/actions/pulp3/repository/refresh_remote.rb +17 -0
  83. data/app/lib/katello/agent/client_message_handler.rb +3 -11
  84. data/app/lib/katello/concerns/base_template_scope_extensions.rb +117 -3
  85. data/app/lib/katello/errors.rb +6 -11
  86. data/app/lib/katello/event_daemon/monitor.rb +0 -1
  87. data/app/lib/katello/event_daemon/runner.rb +2 -2
  88. data/app/lib/katello/event_daemon/services/agent_event_receiver.rb +10 -6
  89. data/app/lib/katello/http_resource.rb +1 -6
  90. data/app/lib/katello/logging.rb +11 -6
  91. data/app/lib/katello/qpid/connection.rb +1 -3
  92. data/app/lib/katello/repo_discovery.rb +15 -1
  93. data/app/lib/katello/resources/candlepin/owner.rb +3 -2
  94. data/app/lib/katello/resources/candlepin/pool.rb +6 -2
  95. data/app/lib/katello/resources/candlepin.rb +10 -0
  96. data/app/lib/katello/util/package.rb +1 -1
  97. data/app/lib/katello/util/pulpcore_content_filters.rb +1 -1
  98. data/app/lib/katello/validators/hostgroup_kickstart_repository_validator.rb +0 -6
  99. data/app/models/katello/authorization/content_view.rb +8 -0
  100. data/app/models/katello/authorization/content_view_version_import_history.rb +11 -0
  101. data/app/models/katello/concerns/content_facet_host_extensions.rb +1 -1
  102. data/app/models/katello/concerns/content_view_filter_rule_common.rb +2 -2
  103. data/app/models/katello/concerns/host_managed_extensions.rb +1 -32
  104. data/app/models/katello/concerns/hostgroup_extensions.rb +2 -9
  105. data/app/models/katello/concerns/http_proxy_extensions.rb +2 -4
  106. data/app/models/katello/concerns/location_extensions.rb +2 -25
  107. data/app/models/katello/concerns/operatingsystem_extensions.rb +0 -2
  108. data/app/models/katello/concerns/organization_extensions.rb +4 -18
  109. data/app/models/katello/concerns/redhat_extensions.rb +10 -18
  110. data/app/models/katello/concerns/smart_proxy_extensions.rb +6 -31
  111. data/app/models/katello/content_view.rb +17 -113
  112. data/app/models/katello/content_view_component.rb +5 -0
  113. data/app/models/katello/content_view_docker_filter_rule.rb +1 -0
  114. data/app/models/katello/content_view_package_filter_rule.rb +4 -0
  115. data/app/models/katello/content_view_package_group_filter.rb +1 -0
  116. data/app/models/katello/content_view_repository.rb +4 -5
  117. data/app/models/katello/content_view_version.rb +9 -33
  118. data/app/models/katello/content_view_version_export_history.rb +18 -4
  119. data/app/models/katello/content_view_version_import_history.rb +42 -0
  120. data/app/models/katello/erratum.rb +1 -1
  121. data/app/models/katello/events/delete_pool.rb +19 -0
  122. data/app/models/katello/glue/candlepin/environment.rb +7 -0
  123. data/app/models/katello/glue/candlepin/owner.rb +12 -1
  124. data/app/models/katello/glue/candlepin/pool.rb +42 -25
  125. data/app/models/katello/glue/provider.rb +3 -6
  126. data/app/models/katello/glue/pulp/repo.rb +19 -9
  127. data/app/models/katello/host/content_facet.rb +1 -0
  128. data/app/models/katello/host/subscription_facet.rb +3 -1
  129. data/app/models/katello/kt_environment.rb +0 -6
  130. data/app/models/katello/package_group.rb +4 -0
  131. data/app/models/katello/ping.rb +15 -4
  132. data/app/models/katello/pool.rb +9 -0
  133. data/app/models/katello/product.rb +0 -6
  134. data/app/models/katello/product_content.rb +3 -1
  135. data/app/models/katello/pulp_sync_status.rb +0 -10
  136. data/app/models/katello/repository.rb +20 -35
  137. data/app/models/katello/root_repository.rb +0 -5
  138. data/app/models/katello/subscription.rb +10 -0
  139. data/app/models/katello/sync_plan.rb +7 -0
  140. data/app/models/setting/content.rb +7 -8
  141. data/app/presenters/katello/content_view_version_compare_presenter.rb +2 -6
  142. data/app/presenters/katello/product_content_presenter.rb +3 -5
  143. data/app/services/cert/certs.rb +3 -7
  144. data/app/services/katello/applicability/applicable_content_helper.rb +1 -2
  145. data/app/services/katello/candlepin/event_handler.rb +22 -22
  146. data/app/services/katello/candlepin/message_handler.rb +24 -15
  147. data/app/services/katello/content_view_manager.rb +24 -0
  148. data/app/services/katello/event_monitor/poller_thread.rb +25 -20
  149. data/app/services/katello/managed_content_medium_provider.rb +4 -0
  150. data/app/services/katello/organization_creator.rb +120 -0
  151. data/app/services/katello/product_content_finder.rb +5 -1
  152. data/app/services/katello/pulp/pulp_content_unit.rb +6 -6
  153. data/app/services/katello/pulp/smart_proxy_repository.rb +2 -17
  154. data/app/services/katello/pulp3/api/ansible_collection.rb +14 -2
  155. data/app/services/katello/pulp3/api/apt.rb +1 -1
  156. data/app/services/katello/pulp3/api/content_guard.rb +6 -40
  157. data/app/services/katello/pulp3/api/core.rb +27 -2
  158. data/app/services/katello/pulp3/api/docker.rb +1 -1
  159. data/app/services/katello/pulp3/api/file.rb +5 -1
  160. data/app/services/katello/pulp3/api/yum.rb +9 -1
  161. data/app/services/katello/pulp3/content_view_version/export.rb +18 -40
  162. data/app/services/katello/pulp3/content_view_version/import.rb +75 -30
  163. data/app/services/katello/pulp3/content_view_version/import_gpg_keys.rb +32 -0
  164. data/app/services/katello/pulp3/content_view_version/import_validator.rb +53 -21
  165. data/app/services/katello/pulp3/content_view_version/importable_products.rb +47 -0
  166. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +52 -0
  167. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +99 -0
  168. data/app/services/katello/pulp3/pulp_content_unit.rb +1 -1
  169. data/app/services/katello/pulp3/repository/ansible_collection.rb +5 -1
  170. data/app/services/katello/pulp3/repository/apt.rb +2 -1
  171. data/app/services/katello/pulp3/repository/yum.rb +0 -16
  172. data/app/services/katello/pulp3/repository.rb +20 -1
  173. data/app/services/katello/pulp3/rpm.rb +5 -1
  174. data/app/services/katello/pulp3/task.rb +12 -5
  175. data/app/services/katello/pulp3/task_group.rb +10 -5
  176. data/app/services/katello/smart_proxy_helper.rb +1 -8
  177. data/app/services/katello/ui_notifications/pulp/proxy_disk_space.rb +0 -1
  178. data/app/services/katello/ui_notifications/system_error.rb +25 -0
  179. data/app/views/katello/api/v2/content_view_components/show.json.rabl +1 -1
  180. data/app/views/katello/api/v2/content_view_filters/show.json.rabl +0 -1
  181. data/app/views/katello/api/v2/{puppet_modules → content_view_version_import_histories}/index.json.rabl +1 -1
  182. data/app/views/katello/api/v2/content_view_version_import_histories/show.json.rabl +14 -0
  183. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +2 -2
  184. data/app/views/katello/api/v2/content_view_versions/show.json.rabl +0 -7
  185. data/app/views/katello/api/v2/content_views/base.json.rabl +20 -9
  186. data/app/views/katello/api/v2/environments/show.json.rabl +0 -1
  187. data/app/views/katello/api/v2/package_groups/index.json.rabl +4 -0
  188. data/app/views/katello/api/v2/repositories/base.json.rabl +0 -1
  189. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -1
  190. data/app/views/katello/api/v2/repository_sets/index.json.rabl +4 -1
  191. data/app/views/katello/api/v2/repository_sets/show.json.rabl +22 -0
  192. data/app/views/katello/api/v2/subscriptions/show.json.rabl +1 -1
  193. data/app/views/overrides/activation_keys/_host_media_type_select.html.erb +1 -1
  194. data/app/views/overrides/smart_proxies/_download_policy.erb +1 -1
  195. data/config/initializers/monkeys.rb +0 -1
  196. data/config/katello.yaml.example +0 -1
  197. data/config/routes/api/v2.rb +9 -21
  198. data/config/routes/overrides.rb +1 -2
  199. data/db/migrate/20140422000001_update_products_add_organization.rb +3 -2
  200. data/db/migrate/20160701180402_add_sortable_version_to_puppet_modules.rb +2 -0
  201. data/db/migrate/20200514092553_move_katello_fields_from_hostgroups.katello.rb +1 -1
  202. data/db/migrate/20210119162528_delete_puppet_and_ostree_repos.rb +14 -20
  203. data/db/migrate/20210224160921_remove_disabled_products_from_sync_plans.rb +6 -0
  204. data/db/migrate/20210302165636_remove_katello_puppet_modules.rb +62 -0
  205. data/db/migrate/20210309160925_create_katello_content_view_version_import_histories.rb +13 -0
  206. data/db/migrate/20210318204533_add_import_type_to_import_histories.rb +8 -0
  207. data/db/migrate/20210319123300_add_foreign_keys_to_import_export_histories.rb +6 -0
  208. data/db/migrate/20210322142311_add_auth_url_token_to_root_repositories.rb +6 -0
  209. data/db/migrate/20210331180353_katello_pool_organization_id_not_nullable.rb +16 -0
  210. data/db/migrate/20210409033915_add_created_in_katello_to_taxonomy.rb +9 -0
  211. data/db/seeds.d/101-locations.rb +0 -3
  212. data/db/seeds.d/102-organizations.rb +1 -5
  213. data/db/seeds.d/109-katello-notification-blueprints.rb +12 -0
  214. data/db/seeds.d/111-upgrade_tasks.rb +3 -2
  215. data/engines/bastion/vendor/assets/javascripts/bastion/angular/angular.js +325 -156
  216. data/engines/bastion/vendor/assets/javascripts/bastion/angular-animate/angular-animate.js +3 -3
  217. data/engines/bastion/vendor/assets/javascripts/bastion/angular-resource/angular-resource.js +3 -3
  218. data/engines/bastion/vendor/assets/javascripts/bastion/angular-route/angular-route.js +3 -3
  219. data/engines/bastion/vendor/assets/javascripts/bastion/angular-sanitize/angular-sanitize.js +21 -43
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js +9 -10
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-repository-sets.html +2 -9
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +0 -1
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +0 -3
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +2 -0
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-packages-modal.controller.js +2 -0
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +11 -4
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +18 -11
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-system-purpose-modal.html +10 -4
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +2 -0
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +5 -1
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +7 -2
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +7 -2
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +6 -6
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +7 -7
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +14 -6
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +5 -5
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +0 -14
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-repository-sets.controller.js +9 -11
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -2
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-repository-sets.html +2 -8
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +3 -6
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register.html +5 -0
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-view.factory.js +0 -6
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +0 -56
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-available-content-views.html +0 -5
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-content-views-list.html +0 -5
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +2 -9
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +0 -12
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +0 -3
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +2 -6
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +0 -1
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +0 -7
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +0 -5
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.module.js +0 -1
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +0 -11
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +0 -3
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +21 -6
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +9 -0
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +71 -311
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +0 -10
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +0 -1
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +2 -4
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +13 -15
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +21 -7
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +0 -9
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +0 -6
  267. data/engines/bastion_katello/lib/bastion_katello/engine.rb +3 -3
  268. data/lib/katello/engine.rb +16 -15
  269. data/lib/katello/middleware/organization_created_enforcer.rb +22 -0
  270. data/lib/katello/permission_creator.rb +12 -28
  271. data/lib/katello/permissions/host_permissions.rb +3 -2
  272. data/lib/katello/plugin.rb +6 -19
  273. data/lib/katello/repository_types/ansible_collection.rb +1 -1
  274. data/lib/katello/repository_types/deb.rb +1 -1
  275. data/lib/katello/repository_types/docker.rb +1 -1
  276. data/lib/katello/repository_types/file.rb +1 -1
  277. data/lib/katello/repository_types/yum.rb +1 -1
  278. data/lib/katello/tasks/clean_backend_objects.rake +25 -0
  279. data/lib/katello/tasks/jenkins.rake +6 -0
  280. data/lib/katello/tasks/receptor/extract_orgs.rake +1 -3
  281. data/lib/katello/tasks/reimport.rake +0 -1
  282. data/lib/katello/tasks/repository.rake +0 -30
  283. data/lib/katello/tasks/update_subscription_facet_backend_data.rake +3 -3
  284. data/lib/katello/tasks/upgrades/4.0/remove_ostree_puppet_content.rake +2 -4
  285. data/lib/katello/tasks/upgrades/4.1/fix_invalid_pools.rake +62 -0
  286. data/lib/katello/tasks/upgrades/4.1/sync_noarch_content.rake +15 -0
  287. data/lib/katello/version.rb +1 -1
  288. data/lib/katello.rb +1 -1
  289. data/locale/action_names.rb +65 -63
  290. data/locale/bn/katello.edit.po +1357 -1606
  291. data/locale/bn/katello.po +465 -744
  292. data/locale/cs/katello.edit.po +1213 -1087
  293. data/locale/cs/katello.po +307 -219
  294. data/locale/de/katello.edit.po +1498 -1520
  295. data/locale/de/katello.po +589 -625
  296. data/locale/en/katello.edit.po +1198 -1074
  297. data/locale/en/katello.po +304 -213
  298. data/locale/es/katello.edit.po +2344 -2304
  299. data/locale/es/katello.po +1407 -1407
  300. data/locale/fr/katello.edit.po +2720 -2642
  301. data/locale/fr/katello.po +1703 -1750
  302. data/locale/gu/katello.edit.po +1546 -1797
  303. data/locale/gu/katello.po +654 -935
  304. data/locale/hi/katello.edit.po +1545 -1793
  305. data/locale/hi/katello.po +653 -931
  306. data/locale/it/katello.edit.po +1323 -1310
  307. data/locale/it/katello.po +407 -409
  308. data/locale/ja/katello.edit.po +2645 -2557
  309. data/locale/ja/katello.po +1646 -1664
  310. data/locale/katello.pot +1435 -1289
  311. data/locale/kn/katello.edit.po +1546 -1795
  312. data/locale/kn/katello.po +654 -933
  313. data/locale/ko/katello.edit.po +1464 -1449
  314. data/locale/ko/katello.po +554 -554
  315. data/locale/mr/katello.edit.po +1545 -1758
  316. data/locale/mr/katello.po +653 -896
  317. data/locale/or/katello.edit.po +1546 -1795
  318. data/locale/or/katello.po +654 -933
  319. data/locale/pa/katello.edit.po +1541 -1775
  320. data/locale/pa/katello.po +649 -913
  321. data/locale/pt/katello.edit.po +1289 -1255
  322. data/locale/pt/katello.po +398 -394
  323. data/locale/pt_BR/katello.edit.po +2370 -2315
  324. data/locale/pt_BR/katello.po +1435 -1421
  325. data/locale/ru/katello.edit.po +1611 -1608
  326. data/locale/ru/katello.po +704 -716
  327. data/locale/ta/katello.edit.po +1358 -1605
  328. data/locale/ta/katello.po +465 -742
  329. data/locale/te/katello.edit.po +1545 -1792
  330. data/locale/te/katello.po +653 -930
  331. data/locale/zh_CN/katello.edit.po +3052 -2930
  332. data/locale/zh_CN/katello.po +2055 -2039
  333. data/locale/zh_TW/katello.edit.po +1571 -1669
  334. data/locale/zh_TW/katello.po +649 -777
  335. data/package.json +2 -2
  336. data/webpack/{scenes/ContentViews/Details/Repositories/RepoAddedStatus.js → components/AddedStatusLabel.js} +5 -5
  337. data/webpack/components/RoutedTabs/RoutedTabs.js +91 -0
  338. data/webpack/components/RoutedTabs/__tests__/RoutedTabs.test.js +32 -0
  339. data/webpack/components/RoutedTabs/index.js +4 -0
  340. data/webpack/components/extensions/RegistrationCommands/RegistrationCommandsPageConstants.js +2 -0
  341. data/webpack/components/extensions/RegistrationCommands/RegistrationCommandsPageHelpers.js +21 -0
  342. data/webpack/components/extensions/RegistrationCommands/RegistrationCommandsPageSelectors.js +21 -0
  343. data/webpack/components/extensions/RegistrationCommands/__tests__/ActivationKeys.test.js +18 -0
  344. data/webpack/components/extensions/RegistrationCommands/__tests__/Force.test.js +9 -0
  345. data/webpack/components/extensions/RegistrationCommands/__tests__/IgnoreSubmanErrors.test.js +9 -0
  346. data/webpack/components/extensions/RegistrationCommands/__tests__/LifeCycleEnvironment.test.js +11 -0
  347. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +58 -0
  348. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/Force.test.js.snap +25 -0
  349. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/IgnoreSubmanErrors.test.js.snap +25 -0
  350. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/LifeCycleEnvironment.test.js.snap +27 -0
  351. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +99 -0
  352. data/webpack/components/extensions/RegistrationCommands/fields/Force.js +38 -0
  353. data/webpack/components/extensions/RegistrationCommands/fields/IgnoreSubmanErrors.js +38 -0
  354. data/webpack/components/extensions/RegistrationCommands/fields/LifecycleEnvironment.js +56 -0
  355. data/webpack/components/extensions/RegistrationCommands/index.js +81 -0
  356. data/webpack/components/pf3Table/formatters/EntitlementsInlineEditFormatter.js +23 -24
  357. data/webpack/components/pf3Table/formatters/__tests__/__snapshots__/EntitlementsInlineEditFormatter.test.js.snap +3 -1
  358. data/webpack/components/pf3Table/formatters/entitlementsValueFormatter.js +16 -0
  359. data/webpack/containers/Application/overrides.scss +3 -0
  360. data/webpack/fills_index.js +3 -0
  361. data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +0 -2
  362. data/webpack/scenes/ContentViews/ContentViewsConstants.js +8 -1
  363. data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +1 -3
  364. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -3
  365. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +28 -0
  366. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js +45 -0
  367. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +124 -0
  368. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.fixtures.json +161 -0
  369. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +163 -0
  370. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/unpublishedCVComponents.fixtures.json +64 -0
  371. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +67 -7
  372. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +61 -4
  373. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +34 -11
  374. data/webpack/scenes/ContentViews/Details/Filters/CVFilterDetailType.js +33 -0
  375. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +117 -0
  376. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +115 -0
  377. data/webpack/scenes/ContentViews/Details/Filters/ContentType.js +7 -10
  378. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetails.js +49 -0
  379. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +56 -0
  380. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +3 -17
  381. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +116 -0
  382. data/webpack/scenes/ContentViews/Details/Filters/__tests__/allFilterPackageGroups.fixtures.json +69 -0
  383. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetail.fixtures.json +103 -0
  384. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +116 -0
  385. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +147 -0
  386. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterRules.fixtures.json +30 -0
  387. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +136 -0
  388. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.fixtures.json +370 -0
  389. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +94 -0
  390. data/webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js +0 -1
  391. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +106 -13
  392. data/webpack/scenes/ContentViews/Details/Repositories/LastSync.js +11 -5
  393. data/webpack/scenes/ContentViews/Details/Repositories/RepoIcon.js +5 -1
  394. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +138 -0
  395. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.fixtures.json +0 -2
  396. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.test.js +1 -1
  397. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +57 -0
  398. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionContent.js +73 -0
  399. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +31 -0
  400. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.js +64 -0
  401. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.scss +8 -0
  402. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionPackages.js +0 -0
  403. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +105 -0
  404. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.fixtures.json +728 -0
  405. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +154 -0
  406. data/webpack/scenes/ContentViews/Details/Versions/__tests__/emptyCVVersion.fixtures.json +13 -0
  407. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +3 -1
  408. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +0 -2
  409. data/webpack/scenes/ContentViews/Table/ContentViewVersionCell.js +33 -0
  410. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +17 -22
  411. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +51 -102
  412. data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +5 -3
  413. data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +30 -5
  414. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +95 -0
  415. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +11 -5
  416. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +16 -0
  417. data/webpack/scenes/ContentViews/components/IconWithCount.js +1 -1
  418. data/webpack/scenes/ContentViews/components/InactiveText.js +15 -0
  419. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +19 -1
  420. data/webpack/scenes/Subscriptions/Details/SubscriptionPurposeAttributes.js +1 -1
  421. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailInfo.test.js.snap +1 -1
  422. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +3 -3
  423. data/webpack/scenes/Subscriptions/Details/__tests__/subscriptionDetails.fixtures.js +1 -1
  424. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableHelpers.js +17 -0
  425. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +2 -1
  426. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +1 -1
  427. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +144 -0
  428. data/webpack/scenes/Tasks/helpers.js +2 -2
  429. data/webpack/test-utils/react-testing-lib-wrapper.js +11 -3
  430. data/webpack/utils/__tests__/useParamsWithHash.test.js +22 -0
  431. data/webpack/utils/helpers.js +2 -0
  432. data/webpack/utils/paramsFromHash.js +16 -0
  433. data/webpack/utils/useUrlParams.js +14 -0
  434. metadata +122 -206
  435. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +0 -82
  436. data/app/controllers/katello/api/v2/puppet_modules_controller.rb +0 -19
  437. data/app/controllers/katello/concerns/registration_controller_extensions.rb +0 -16
  438. data/app/helpers/katello/concerns/hosts_and_hostgroups_helper_extensions.rb +0 -20
  439. data/app/lib/actions/candlepin/owner/create.rb +0 -16
  440. data/app/lib/actions/katello/content_view_puppet_environment/clear.rb +0 -11
  441. data/app/lib/actions/katello/content_view_puppet_environment/clone.rb +0 -78
  442. data/app/lib/actions/katello/content_view_puppet_environment/clone_content_for_version.rb +0 -20
  443. data/app/lib/actions/katello/content_view_puppet_environment/create.rb +0 -34
  444. data/app/lib/actions/katello/content_view_puppet_environment/create_for_version.rb +0 -23
  445. data/app/lib/actions/katello/content_view_puppet_environment/destroy.rb +0 -28
  446. data/app/lib/actions/katello/content_view_puppet_module/destroy.rb +0 -46
  447. data/app/lib/actions/katello/environment/library_create.rb +0 -35
  448. data/app/lib/actions/katello/organization/create.rb +0 -38
  449. data/app/lib/actions/pulp/content_view_puppet_environment/copy_contents.rb +0 -36
  450. data/app/lib/actions/pulp/content_view_puppet_environment/index_content.rb +0 -19
  451. data/app/lib/actions/pulp/repository/presenters/puppet_presenter.rb +0 -54
  452. data/app/lib/actions/pulp3/content_migration.rb +0 -31
  453. data/app/lib/actions/pulp3/content_migration_presenter.rb +0 -59
  454. data/app/lib/actions/pulp3/content_migration_reset.rb +0 -22
  455. data/app/lib/katello/foreman.rb +0 -32
  456. data/app/lib/katello/mapping.rb +0 -31
  457. data/app/lib/katello/util/hostgroup_facets_helper.rb +0 -126
  458. data/app/lib/katello/validators/content_view_puppet_module_validator.rb +0 -32
  459. data/app/models/katello/concerns/environment_extensions.rb +0 -74
  460. data/app/models/katello/content_view_puppet_environment.rb +0 -116
  461. data/app/models/katello/content_view_puppet_environment_puppet_module.rb +0 -11
  462. data/app/models/katello/content_view_puppet_module.rb +0 -63
  463. data/app/models/katello/puppet_module.rb +0 -77
  464. data/app/models/katello/repository_puppet_module.rb +0 -7
  465. data/app/services/katello/pulp/puppet_module.rb +0 -21
  466. data/app/services/katello/pulp/repository/puppet.rb +0 -68
  467. data/app/services/katello/pulp3/migration.rb +0 -329
  468. data/app/services/katello/pulp3/migration_plan.rb +0 -178
  469. data/app/services/katello/pulp3/migration_switchover.rb +0 -126
  470. data/app/services/katello/puppet_class_importer_extensions.rb +0 -32
  471. data/app/views/foreman/hosts/_registration.html.erb +0 -12
  472. data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +0 -30
  473. data/app/views/katello/api/v2/content_view_puppet_modules/create.json.rabl +0 -3
  474. data/app/views/katello/api/v2/content_view_puppet_modules/index.json.rabl +0 -7
  475. data/app/views/katello/api/v2/content_view_puppet_modules/show.json.rabl +0 -9
  476. data/app/views/katello/api/v2/content_views/puppet_modules.json.rabl +0 -7
  477. data/app/views/katello/api/v2/host_subscriptions/content_override.json.rabl +0 -3
  478. data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +0 -29
  479. data/app/views/katello/api/v2/puppet_modules/backend.json.rabl +0 -7
  480. data/app/views/katello/api/v2/puppet_modules/base.json.rabl +0 -9
  481. data/app/views/katello/api/v2/puppet_modules/compare.json.rabl +0 -10
  482. data/app/views/katello/api/v2/puppet_modules/name.json.rabl +0 -3
  483. data/app/views/katello/api/v2/puppet_modules/names.json.rabl +0 -7
  484. data/app/views/katello/api/v2/puppet_modules/show.json.rabl +0 -4
  485. data/db/migrate/20210512192745_fix_red_hat_root_repository_arch.rb +0 -11
  486. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register-client.directive.js +0 -6
  487. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register-os-client.directive.js +0 -17
  488. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register.controller.js +0 -44
  489. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-client.html +0 -28
  490. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-deb-client.html +0 -38
  491. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-oracle-client.html +0 -5
  492. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-sles-client.html +0 -28
  493. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-puppet-modules.controller.js +0 -9
  494. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-names.controller.js +0 -45
  495. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-versions.controller.js +0 -61
  496. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module.factory.js +0 -23
  497. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-modules.controller.js +0 -74
  498. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-names.html +0 -57
  499. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-versions.html +0 -64
  500. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-modules.html +0 -54
  501. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-puppet-modules.html +0 -19
  502. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-puppet-modules.html +0 -25
  503. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +0 -6903
  504. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +0 -7094
  505. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +0 -7303
  506. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +0 -6895
  507. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +0 -6865
  508. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +0 -6720
  509. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +0 -7077
  510. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +0 -6832
  511. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +0 -6766
  512. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +0 -6703
  513. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +0 -66
  514. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module-content-views.controller.js +0 -44
  515. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module-repositories.controller.js +0 -36
  516. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module.controller.js +0 -34
  517. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module-content-views.html +0 -41
  518. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module-info.html +0 -32
  519. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module-repositories.html +0 -52
  520. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module.html +0 -37
  521. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-module.factory.js +0 -28
  522. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.controller.js +0 -35
  523. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.module.js +0 -20
  524. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.routes.js +0 -71
  525. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules.html +0 -47
  526. data/lib/katello/repository_types/puppet.rb +0 -5
  527. data/lib/katello/tasks/fix_hostgroup_facets.rake +0 -8
  528. data/lib/katello/tasks/pulp3_content_switchover.rake +0 -32
  529. data/lib/katello/tasks/pulp3_migration.rake +0 -41
  530. data/lib/katello/tasks/pulp3_migration_abort.rake +0 -22
  531. data/lib/katello/tasks/pulp3_migration_reset.rake +0 -26
  532. data/lib/katello/tasks/pulp3_migration_stats.rake +0 -41
  533. data/lib/katello/tasks/pulp3_post_migration_check.rake +0 -51
  534. data/lib/monkeys/passenger_tee_input.rb +0 -20
  535. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  536. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  537. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  538. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  539. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  540. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  541. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  542. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  543. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  544. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  545. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  546. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  547. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  548. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  549. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  550. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  551. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  552. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  553. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  554. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  555. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  556. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  557. data/webpack/components/TabWrapper/TabWrapper.js +0 -26
  558. data/webpack/components/TabWrapper/index.js +0 -3
  559. data/webpack/components/TabbedView/TabbedView.js +0 -38
  560. data/webpack/components/TabbedView/TabbedView.scss +0 -3
  561. data/webpack/components/TabbedView/index.js +0 -3
  562. data/webpack/scenes/ContentViews/expansions/EnvironmentsExpansion.js +0 -19
  563. data/webpack/scenes/ContentViews/expansions/VersionsExpansion.js +0 -11
@@ -0,0 +1,57 @@
1
+ module Actions
2
+ module Pulp3
3
+ module ContentViewVersion
4
+ class CreateExportHistory < Actions::EntryAction
5
+ input_format do
6
+ param :smart_proxy_id, Integer
7
+ param :exporter_data, Hash
8
+ param :content_view_version_id, Integer
9
+ param :from_content_view_version_id, Integer
10
+ param :destination_server, String
11
+ end
12
+
13
+ output_format do
14
+ param :export_history_id, Integer
15
+ param :path, String
16
+ param :exported_file_checksum, String
17
+ end
18
+
19
+ def run
20
+ smart_proxy = ::SmartProxy.find(input[:smart_proxy_id])
21
+ api = ::Katello::Pulp3::Api::Core.new(smart_proxy)
22
+ export_data = api.export_api.list(input[:exporter_data][:pulp_href]).results.first
23
+ output[:exported_file_checksum] = export_data.output_file_info
24
+ file_name = output[:exported_file_checksum].first&.first
25
+ path = File.dirname(file_name.to_s)
26
+ output[:path] = path
27
+ cvv = ::Katello::ContentViewVersion.find(input[:content_view_version_id])
28
+ from_cvv = ::Katello::ContentViewVersion.find(input[:from_content_view_version_id]) unless input[:from_content_view_version_id].blank?
29
+
30
+ export_metadata = ::Katello::Pulp3::ContentViewVersion::Export.new(
31
+ content_view_version: cvv,
32
+ smart_proxy: smart_proxy,
33
+ from_content_view_version: from_cvv).generate_metadata
34
+
35
+ toc_path_info = output[:exported_file_checksum].find { |item| item.first.end_with?("toc.json") }
36
+ export_metadata[:toc] = File.basename(toc_path_info.first)
37
+
38
+ history = ::Katello::ContentViewVersionExportHistory.create!(
39
+ content_view_version_id: input[:content_view_version_id],
40
+ destination_server: input[:destination_server],
41
+ path: path,
42
+ metadata: export_metadata,
43
+ audit_comment: ::Katello::ContentViewVersionExportHistory.generate_audit_comment(content_view_version: cvv,
44
+ user: User.current,
45
+ from_version: from_cvv,
46
+ metadata: export_metadata)
47
+ )
48
+ output[:export_history_id] = history.id
49
+ end
50
+
51
+ def humanized_name
52
+ _("Create Export History")
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,34 @@
1
+ module Actions
2
+ module Pulp3
3
+ module ContentViewVersion
4
+ class CreateImportHistory < Actions::EntryAction
5
+ input_format do
6
+ param :content_view_version_id, Integer
7
+ param :path, String
8
+ param :metadata, Hash
9
+ param :content_view_name, String
10
+ end
11
+
12
+ output_format do
13
+ param :import_history_id, Integer
14
+ end
15
+
16
+ def run
17
+ history = ::Katello::ContentViewVersionImportHistory.create!(
18
+ content_view_version_id: input[:content_view_version_id],
19
+ path: input[:path],
20
+ metadata: input[:metadata],
21
+ audit_comment: ::Katello::ContentViewVersionImportHistory.generate_audit_comment(path: input[:path],
22
+ user: User.current,
23
+ content_view_name: input[:content_view_name])
24
+ )
25
+ output[:import_history_id] = history.id
26
+ end
27
+
28
+ def humanized_name
29
+ _("Create Import History")
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -7,12 +7,11 @@ module Actions
7
7
  concurrence do
8
8
  content_view_version.importable_repositories.each do |repo|
9
9
  sequence do
10
- copy_action = plan_action(Actions::Pulp3::Repository::CopyContent, repo, SmartProxy.pulp_primary!,
10
+ plan_action(Actions::Pulp3::Repository::CopyContent, repo, SmartProxy.pulp_primary!,
11
11
  repo.library_instance,
12
12
  copy_all: true,
13
13
  mirror: content_view_version.content_view.library_import?)
14
- plan_action(Actions::Pulp3::Repository::SaveVersion, repo.library_instance,
15
- tasks: copy_action.output[:pulp_tasks])
14
+ plan_action(Actions::Pulp3::Repository::SaveVersion, repo.library_instance)
16
15
  plan_action(Katello::Repository::IndexContent, id: repo.library_instance_id)
17
16
  plan_action(Katello::Repository::MetadataGenerate, repo.library_instance, :force => true)
18
17
  end
@@ -16,81 +16,64 @@ module Actions
16
16
  param :exported_file_checksum, Hash
17
17
  param :export_path, String
18
18
  end
19
-
20
- # rubocop:disable Metrics/MethodLength
21
19
  def plan(content_view_version:, destination_server: nil,
22
20
  chunk_size: nil, from_history: nil,
23
21
  validate_incremental: true,
24
22
  fail_on_missing_content: false)
25
- action_subject(content_view_version)
26
- unless File.directory?(Setting['pulpcore_export_destination'])
27
- fail ::Foreman::Exception, N_("Unable to export. 'pulpcore_export_destination' setting is not set to a valid directory.")
28
- end
29
23
 
30
24
  sequence do
31
25
  smart_proxy = SmartProxy.pulp_primary!
32
26
  from_content_view_version = from_history&.content_view_version
33
27
  export_service = ::Katello::Pulp3::ContentViewVersion::Export.new(
34
- smart_proxy: smart_proxy,
35
- content_view_version: content_view_version,
36
- destination_server: destination_server,
37
- from_content_view_version: from_content_view_version)
28
+ smart_proxy: smart_proxy,
29
+ content_view_version: content_view_version,
30
+ destination_server: destination_server,
31
+ from_content_view_version: from_content_view_version)
38
32
  export_service.validate!(fail_on_missing_content: fail_on_missing_content,
39
33
  validate_incremental: validate_incremental)
40
34
 
41
35
  action_output = plan_action(::Actions::Pulp3::ContentViewVersion::CreateExporter,
42
- content_view_version_id: content_view_version.id,
43
- smart_proxy_id: smart_proxy.id,
44
- destination_server: destination_server).output
36
+ content_view_version_id: content_view_version.id,
37
+ smart_proxy_id: smart_proxy.id,
38
+ destination_server: destination_server).output
45
39
 
46
40
  plan_action(::Actions::Pulp3::ContentViewVersion::Export,
47
- content_view_version_id: content_view_version.id,
48
- smart_proxy_id: smart_proxy.id,
49
- exporter_data: action_output[:exporter_data],
50
- chunk_size: chunk_size,
51
- from_content_view_version_id: from_content_view_version&.id)
41
+ content_view_version_id: content_view_version.id,
42
+ smart_proxy_id: smart_proxy.id,
43
+ exporter_data: action_output[:exporter_data],
44
+ chunk_size: chunk_size,
45
+ from_content_view_version_id: from_content_view_version&.id)
46
+
47
+ history_output = plan_action(
48
+ ::Actions::Pulp3::ContentViewVersion::CreateExportHistory,
49
+ smart_proxy_id: smart_proxy.id,
50
+ exporter_data: action_output[:exporter_data],
51
+ pulp_href: action_output[:exporter_data][:pulp_href],
52
+ content_view_version_id: content_view_version.id,
53
+ from_content_view_version_id: from_content_view_version&.id,
54
+ destination_server: destination_server
55
+ ).output
56
+
57
+ plan_action(::Actions::Pulp3::ContentViewVersion::DestroyExporter,
58
+ smart_proxy_id: smart_proxy.id,
59
+ exporter_data: action_output[:exporter_data])
52
60
 
53
61
  plan_self(exporter_data: action_output[:exporter_data], smart_proxy_id: smart_proxy.id,
54
62
  destination_server: destination_server,
55
63
  content_view_version_id: content_view_version.id,
56
- from_content_view_version_id: from_content_view_version&.id)
57
-
58
- plan_action(::Actions::Pulp3::ContentViewVersion::DestroyExporter,
59
- smart_proxy_id: smart_proxy.id,
60
- exporter_data: action_output[:exporter_data])
64
+ from_content_view_version_id: from_content_view_version&.id,
65
+ export_history_id: history_output[:export_history_id],
66
+ exported_file_checksum: history_output[:exported_file_checksum],
67
+ export_path: history_output[:path])
61
68
  end
62
69
  end
63
70
 
64
71
  def run
65
- smart_proxy = ::SmartProxy.find(input[:smart_proxy_id])
66
- api = ::Katello::Pulp3::Api::Core.new(smart_proxy)
67
- export_data = api.export_api.list(input[:exporter_data][:pulp_href]).results.first
68
- output[:exported_file_checksum] = export_data.output_file_info
69
- file_name = output[:exported_file_checksum].first&.first
70
- path = File.dirname(file_name.to_s)
71
- output[:export_path] = path
72
- cvv = ::Katello::ContentViewVersion.find(input[:content_view_version_id])
73
- from_cvv = ::Katello::ContentViewVersion.find(input[:from_content_view_version_id]) unless input[:from_content_view_version_id].blank?
74
-
75
- export_metadata = ::Katello::Pulp3::ContentViewVersion::Export.new(
76
- content_view_version: cvv,
77
- smart_proxy: smart_proxy,
78
- from_content_view_version: from_cvv).generate_metadata
79
-
80
- toc_path_info = output[:exported_file_checksum].find { |item| item.first.end_with?("toc.json") }
81
- export_metadata[:toc] = File.basename(toc_path_info.first)
82
-
83
- history = ::Katello::ContentViewVersionExportHistory.create!(
84
- content_view_version_id: input[:content_view_version_id],
85
- destination_server: input[:destination_server],
86
- path: path,
87
- metadata: export_metadata
72
+ output.update(
73
+ export_history_id: input[:export_history_id],
74
+ export_path: input[:export_path],
75
+ exported_file_checksum: input[:exported_file_checksum]
88
76
  )
89
- output[:export_history_id] = history.id
90
- end
91
-
92
- def humanized_name
93
- _("Export")
94
77
  end
95
78
 
96
79
  def rescue_strategy
@@ -13,12 +13,12 @@ module Actions
13
13
  content_view = ::Katello::Pulp3::ContentViewVersion::Export.find_library_export_view(destination_server: destination_server,
14
14
  organization: organization,
15
15
  create_by_default: true)
16
- repo_ids_in_library = organization.default_content_view_version.repositories.yum_type.immediate.pluck(:id)
16
+ repo_ids_in_library = organization.default_content_view_version.repositories.exportable.immediate_or_none.pluck(:id)
17
17
  content_view.update!(repository_ids: repo_ids_in_library)
18
18
 
19
19
  sequence do
20
20
  publish_action = plan_action(::Actions::Katello::ContentView::Publish, content_view, '')
21
- export_action = plan_action(::Actions::Pulp3::Orchestration::ContentViewVersion::Export,
21
+ export_action = plan_action(Actions::Katello::ContentViewVersion::Export,
22
22
  content_view_version: publish_action.version,
23
23
  destination_server: destination_server,
24
24
  chunk_size: chunk_size,
@@ -26,10 +26,22 @@ module Actions
26
26
 
27
27
  plan_action(Actions::Pulp3::Repository::SaveVersions, content_view_version.importable_repositories.pluck(:id),
28
28
  tasks: import_output[:pulp_tasks])
29
-
29
+ plan_action(
30
+ ::Actions::Pulp3::ContentViewVersion::CreateImportHistory,
31
+ content_view_version_id: content_view_version.id,
32
+ path: path,
33
+ metadata: metadata,
34
+ content_view_name: content_view_version.name
35
+ )
30
36
  plan_action(::Actions::Pulp3::ContentViewVersion::DestroyImporter,
31
37
  smart_proxy_id: smart_proxy.id,
32
38
  importer_data: importer_output[:importer_data])
39
+ plan_self(
40
+ content_view_name: content_view_version.name,
41
+ metadata: metadata,
42
+ path: path,
43
+ content_view_version_id: content_view_version.id
44
+ )
33
45
  end
34
46
  end
35
47
 
@@ -2,7 +2,7 @@ module Actions
2
2
  module Pulp3
3
3
  module Orchestration
4
4
  module OrphanCleanup
5
- class RemoveOrphans < Pulp3::Abstract
5
+ class RemoveOrphans < Pulp::Abstract
6
6
  def plan(proxy)
7
7
  if proxy.pulp3_enabled?
8
8
  sequence do
@@ -6,6 +6,7 @@ module Actions
6
6
  include Actions::Helpers::OutputPropagator
7
7
  def plan(repository, smart_proxy, options)
8
8
  sequence do
9
+ plan_action(Actions::Pulp3::Repository::RefreshRemote, repository, smart_proxy)
9
10
  action_output = plan_action(Actions::Pulp3::Repository::Sync, repository, smart_proxy, options).output
10
11
 
11
12
  force_fetch_version = true if options[:optimize] == false
@@ -0,0 +1,17 @@
1
+ module Actions
2
+ module Pulp3
3
+ module Repository
4
+ class RefreshRemote < Pulp3::AbstractAsyncTask
5
+ def plan(repository, smart_proxy)
6
+ plan_self(repository_id: repository.id, smart_proxy_id: smart_proxy.id)
7
+ end
8
+
9
+ def invoke_external_task
10
+ repo = ::Katello::Repository.find(input[:repository_id])
11
+ backend = repo.backend_service(smart_proxy)
12
+ backend.update_remote if backend.remote_needs_updates?
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -34,17 +34,9 @@ module Katello
34
34
  private
35
35
 
36
36
  def handle_dynflow_event
37
- return unless accepted? || result
38
-
39
- task = ForemanTasks::Task.find_by_external_id(@dispatch_history.dynflow_execution_plan_id)
40
-
41
- unless task
42
- logger.info("Task external_id=#{@dispatch_history.dynflow_execution_plan_id} wasn't found. Skipping dynflow event dispatch")
43
- return
44
- end
45
-
46
- unless task.result == 'pending'
47
- logger.info("Task is no longer pending. Skipping dynflow event dispatch. task_result=#{task.result} external_id=#{@dispatch_history.dynflow_execution_plan_id} dispatch_history_id=#{@dispatch_history.id}")
37
+ task_exists = ForemanTasks::Task.exists?(external_id: @dispatch_history.dynflow_execution_plan_id, result: 'pending')
38
+ unless task_exists
39
+ logger.warn("Couldn't find pending task with external_id=#{@dispatch_history.dynflow_execution_plan_id} dispatch_history_id=#{@dispatch_history.id}")
48
40
  return
49
41
  end
50
42
 
@@ -2,40 +2,83 @@ module Katello
2
2
  module Concerns
3
3
  module BaseTemplateScopeExtensions
4
4
  extend ActiveSupport::Concern
5
+ extend ApipieDSL::Module
5
6
 
7
+ apipie :class, 'Base macros related to content hosts to use within a template' do
8
+ name 'Base Content'
9
+ sections only: %w[all reports provisioning jobs partition_tables]
10
+ end
11
+
12
+ apipie :method, 'Returns an erratum by ID' do
13
+ required :id, Integer, desc: 'Errata ID'
14
+ returns Object, desc: 'The erratum object'
15
+ end
6
16
  def errata(id)
7
17
  Katello::Erratum.in_repositories(Katello::Repository.readable).with_identifiers(id).map(&:attributes).first.slice!('created_at', 'updated_at')
8
18
  end
9
19
 
20
+ apipie :method, 'Returns subscriptions for the host' do
21
+ required :host, 'Host::Managed', desc: 'Host object to get subscriptions for'
22
+ returns array_of: 'Subscription', desc: 'Array with subscription object'
23
+ end
10
24
  def host_subscriptions(host)
11
25
  host.subscriptions
12
26
  end
13
27
 
28
+ apipie :method, 'Returns subscription names for the host' do
29
+ required :host, 'Host::Managed', desc: 'Host object to get subscriptions for'
30
+ returns array_of: String, desc: "Array with names of host's subscriptions"
31
+ end
14
32
  def host_subscriptions_names(host)
15
33
  host.subscriptions.map(&:name)
16
34
  end
17
35
 
36
+ apipie :method, 'Returns Red Hat subscription names for the host' do
37
+ required :host, 'Host::Managed', desc: 'Host object to get subscriptions for'
38
+ returns array_of: String, desc: "Array with names of host's subscriptions"
39
+ end
18
40
  def host_redhat_subscription_names(host)
19
41
  host.subscriptions.redhat.pluck(:name)
20
42
  end
21
43
 
44
+ apipie :method, 'Returns the count of Red Hat subscriptions consumed for the host' do
45
+ required :host, 'Host::Managed', desc: 'Host object to get subscriptions for'
46
+ returns Integer, desc: "Count of consumed Red Hat subscriptions"
47
+ end
22
48
  def host_redhat_subscriptions_consumed(host)
23
49
  presenter = ::Katello::HostSubscriptionsPresenter.new(host)
24
50
  presenter.subscriptions.select(&:redhat?).sum(&:quantity_consumed)
25
51
  end
26
52
 
53
+ apipie :method, 'Returns content facet for the host' do
54
+ desc "Content facet is an object containing the host's content-related metadata and associations"
55
+ required :host, 'Host::Managed', desc: 'Host object to get content facet for'
56
+ returns 'ContentFacet'
57
+ end
27
58
  def host_content_facet(host)
28
59
  host.content_facet
29
60
  end
30
61
 
62
+ apipie :method, 'Returns service level for the host' do
63
+ required :host, 'Host::Managed', desc: 'Host object to get service level for'
64
+ returns String, example: 'host_sla(host) #=> "Standard"'
65
+ end
31
66
  def host_sla(host)
32
67
  host_subscription_facet(host)&.service_level
33
68
  end
34
69
 
70
+ apipie :method, 'Returns installed products for the host' do
71
+ required :host, 'Host::Managed', desc: 'Host object to get products for'
72
+ returns array_of: 'Product', desc: "Array of installed product objects on the host"
73
+ end
35
74
  def host_products(host)
36
75
  host_subscription_facet(host)&.installed_products
37
76
  end
38
77
 
78
+ apipie :method, 'Returns installed product names for the host' do
79
+ required :host, 'Host::Managed', desc: 'Host object to get products for'
80
+ returns array_of: String, desc: 'Array with names of installed products on the host'
81
+ end
39
82
  def host_products_names(host)
40
83
  products = host_products(host)
41
84
  if products
@@ -45,52 +88,113 @@ module Katello
45
88
  end
46
89
  end
47
90
 
91
+ apipie :method, 'Returns the host collections the host belongs to' do
92
+ required :host, 'Host::Managed', desc: 'Host object to get the host collections for'
93
+ returns array_of: 'HostCollection', desc: "Array of the host collection objects the host belongs to"
94
+ end
48
95
  def host_collections(host)
49
96
  host.host_collections
50
97
  end
51
98
 
99
+ apipie :method, 'Returns names of the host collections the host belongs to' do
100
+ required :host, 'Host::Managed', desc: 'Host object to get the host collections for'
101
+ returns array_of: String, desc: 'Array with names of the host collections the host belongs to'
102
+ end
52
103
  def host_collections_names(host)
53
104
  host.host_collections.map(&:name)
54
105
  end
55
106
 
107
+ apipie :method, 'Returns subscription name of the pool' do
108
+ required :pool, 'Katello::Pool', desc: 'Pool object to get subscription name of'
109
+ returns String, desc: 'Name of the subscription'
110
+ end
56
111
  def sub_name(pool)
57
112
  return unless pool
58
113
  pool.subscription&.name
59
114
  end
60
115
 
116
+ apipie :method, 'Returns subscription SKU' do
117
+ required :pool, 'Katello::Pool', desc: 'Pool object to get subscription SKU of'
118
+ returns String, desc: "SKU's ID of the subscription"
119
+ end
61
120
  def sub_sku(pool)
62
121
  return unless pool
63
122
  pool.subscription&.cp_id
64
123
  end
65
124
 
125
+ apipie :method, 'Returns the smart proxy that the host was registered through' do
126
+ required :host, 'Host::Managed', desc: 'Host object to get smart proxy of'
127
+ returns String, desc: 'Hostname of the smart proxy'
128
+ end
66
129
  def registered_through(host)
67
130
  host_subscription_facet(host)&.registered_through
68
131
  end
69
132
 
133
+ apipie :method, 'Returns time the host was registered at' do
134
+ required :host, 'Host::Managed', desc: 'Host object to get registration time of'
135
+ returns 'ActiveSupport::TimeWithZone', desc: 'Registration time of the host'
136
+ end
70
137
  def registered_at(host)
71
138
  host_subscription_facet(host)&.registered_at
72
139
  end
73
140
 
141
+ apipie :method, 'Returns IDs of the applicable errata on the host' do
142
+ required :host, 'Host::Managed', desc: 'Host object to get the applicable errata for'
143
+ returns array_of: Integer, desc: 'Array with applicable errata IDs of the host'
144
+ end
74
145
  def host_applicable_errata_ids(host)
75
146
  host.applicable_errata.map(&:errata_id)
76
147
  end
77
148
 
149
+ apipie :method, 'Returns filtered applicable errata for the host' do
150
+ required :host, 'Host::Managed', desc: 'Host object to get the applicable errata for'
151
+ optional :filter, String, desc: 'Filter to apply on applicable errata', default: ''
152
+ returns array_of: 'Erratum', desc: 'Filtered applicable errata for the host'
153
+ end
78
154
  def host_applicable_errata_filtered(host, filter = '')
79
155
  host.applicable_errata.includes(:cves).search_for(filter)
80
156
  end
81
157
 
158
+ apipie :method, 'Returns version of the latest applicable RPM package' do
159
+ required :host, 'Host::Managed', desc: 'Host object to get the applicable RPM package version on'
160
+ required :package, String, desc: 'Name of the package'
161
+ returns String, desc: 'Package version'
162
+ end
82
163
  def host_latest_applicable_rpm_version(host, package)
83
164
  host.applicable_rpms.where(name: package).order(:version_sortable).limit(1).pluck(:nvra).first
84
165
  end
85
166
 
167
+ apipie :method, 'Loads Pool objects' do
168
+ desc 'This macro returns a collection of Pools matching search criteria.
169
+ The collection is loaded in bulk, 1000 records at a time.'
170
+ keyword :search, String, desc: 'A search term to limit the resulting collection, using standard search syntax', default: ''
171
+ keyword :includes, Array, of: [String, Symbol], desc: 'An array of associations represented by strings or symbols, to be included in the SQL query. The list can be extended
172
+ from plugins and can not be fully documented here. Most used associations are :subscription, :products, :organization', default: nil
173
+ returns array_of: 'Pool', desc: 'The collection that can be iterated over using each_record'
174
+ end
86
175
  def load_pools(search: '', includes: nil)
87
176
  load_resource(klass: Pool.readable, search: search, permission: nil, includes: includes)
88
177
  end
89
178
 
179
+ apipie :method, 'Returns the last time the host checked in via RHSM' do
180
+ required :host, 'Host::Managed', desc: 'Host object to get the last time the host checked in'
181
+ returns 'ActiveSupport::TimeWithZone', desc: 'The last time the host checked in via RHSM'
182
+ end
90
183
  def last_checkin(host)
91
184
  host&.subscription_facet&.last_checkin
92
185
  end
93
186
 
187
+ apipie :method, 'Load errata applications' do
188
+ desc 'This macro returns a collection of task records relating to errata being applied.
189
+ The collection is loaded in bulk, 1000 records at a time.'
190
+ keyword :filter_errata_type, String, desc: "Errata type. One of: #{Katello::Erratum::TYPES.join(', ')}", default: nil
191
+ keyword :include_last_reboot, String, desc: "Set to 'yes' to include the last reboot time of each host", default: 'yes'
192
+ keyword :since, String, desc: 'Return errata applications after this date'
193
+ keyword :up_to, String, desc: 'Return errata applications before this date'
194
+ keyword :status, String, desc: 'Task status. One of: "pending", "success", "error", "warning"'
195
+ keyword :host_filter, String, desc: 'A filter term to limit the resulting collection, using standard filter syntax', default: nil
196
+ returns array_of: 'Erratum', desc: 'The collection that can be iterated over using each_record'
197
+ end
94
198
  # rubocop:disable Metrics/MethodLength
95
199
  # rubocop:disable Metrics/AbcSize
96
200
  # rubocop:disable Metrics/CyclomaticComplexity
@@ -101,13 +205,13 @@ module Katello
101
205
  filter_errata_type = filter_errata_type.presence || 'all'
102
206
  search_up_to = up_to.present? ? "ended_at < \"#{up_to}\"" : nil
103
207
  search_since = since.present? ? "ended_at > \"#{since}\"" : nil
104
- search_result = status.present? ? "result = #{status}" : nil
208
+ search_result = status.present? && status != 'all' ? "result = #{status}" : nil
105
209
  search = [search_up_to, search_since, search_result].compact.join(' and ')
106
210
 
107
211
  if Katello.with_remote_execution?
108
- condition = ["state != 'stoppped' AND (label = 'Actions::RemoteExecution::RunHostJob' AND templates.id = ?) OR label = 'Actions::Katello::Host::Erratum::Install'", RemoteExecutionFeature.feature('katello_errata_install').job_template_id]
212
+ condition = ["state != 'stopped' AND (label = 'Actions::RemoteExecution::RunHostJob' AND templates.id = ?) OR label = 'Actions::Katello::Host::Erratum::Install'", RemoteExecutionFeature.feature('katello_errata_install').job_template_id]
109
213
  else
110
- condition = "state != 'stoppped' AND label = 'Actions::Katello::Host::Erratum::Install'"
214
+ condition = "state != 'stopped' AND label = 'Actions::Katello::Host::Erratum::Install'"
111
215
  end
112
216
 
113
217
  tasks = load_resource(klass: ForemanTasks::Task,
@@ -165,10 +269,20 @@ module Katello
165
269
  end
166
270
  # rubocop:enable Metrics/MethodLength
167
271
 
272
+ apipie :method, 'Converts package version to be sortable' do
273
+ required :version, String, desc: 'Version to convert'
274
+ returns String, desc: 'Sortable version of a package'
275
+ example 'For usage example please refer to **Host - compare content hosts packages** report template'
276
+ end
168
277
  def sortable_version(version)
169
278
  Util::Package.sortable_version(version)
170
279
  end
171
280
 
281
+ apipie :method, 'Returns true if Katello Agent infrastructure is enabled on the server'
282
+ def katello_agent_enabled?
283
+ Katello.with_katello_agent?
284
+ end
285
+
172
286
  private
173
287
 
174
288
  def host_subscription_facet(host)
@@ -1,11 +1,11 @@
1
1
  module Katello
2
2
  module Errors
3
+ class PingError < StandardError; end
4
+
3
5
  class InvalidActionOptionError < StandardError; end
4
6
 
5
7
  class InvalidRepositoryContent < StandardError; end
6
8
 
7
- class InvalidPuppetModuleError < InvalidRepositoryContent; end
8
-
9
9
  class NotFound < StandardError; end
10
10
 
11
11
  class RegistrationError < StandardError; end
@@ -53,7 +53,7 @@ module Katello
53
53
 
54
54
  class PulpcoreMissingCapabilities < StandardError
55
55
  def message
56
- _("A smart proxy seems to have been refreshed without pulpcore being running. Please refresh the smart proxy after ensuring that pulpcore services are running.")
56
+ _("A smart proxy seems to have been refreshed without pulpcore being running. You may want to ")
57
57
  end
58
58
  end
59
59
 
@@ -91,14 +91,6 @@ module Katello
91
91
  end
92
92
  end
93
93
 
94
- class PuppetConflictException < StandardError
95
- attr_accessor :conflicts
96
-
97
- def initialize(conflicts)
98
- self.conflicts = conflicts
99
- end
100
- end
101
-
102
94
  class CandlepinError < StandardError
103
95
  # Return a CandlepinError with the displayMessage
104
96
  # as the message set it
@@ -112,6 +104,9 @@ module Katello
112
104
  end
113
105
  end
114
106
 
107
+ class CandlepinNotRunning < StandardError; end
108
+ class CandlepinPoolGone < CandlepinError; end
109
+
115
110
  class Pulp3Error < StandardError; end
116
111
  class Pulp3MigrationError < StandardError; end
117
112
 
@@ -38,7 +38,6 @@ module Katello
38
38
  begin
39
39
  service_class.close
40
40
  service_class.run
41
- sleep 0.1
42
41
  @service_statuses[service_name] = service_class.status
43
42
  rescue => error
44
43
  Rails.logger.error("Error occurred while starting #{service_class}")
@@ -17,7 +17,7 @@ module Katello
17
17
  def pid
18
18
  return unless pid_file && File.exist?(pid_file)
19
19
 
20
- File.open(pid_file) { |f| f.read.to_i }
20
+ File.read(pid_file).to_i
21
21
  end
22
22
 
23
23
  def pid_file
@@ -36,7 +36,7 @@ module Katello
36
36
  return unless pid_file
37
37
 
38
38
  FileUtils.mkdir_p(pid_dir)
39
- File.open(pid_file, 'w') { |f| f.puts Process.pid }
39
+ File.write(pid_file, Process.pid)
40
40
  end
41
41
 
42
42
  def stop