katello 3.18.0.rc2.1 → 4.0.0.rc2

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 (380) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/katello/katello.scss +0 -72
  3. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +0 -19
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -3
  5. data/app/controllers/katello/api/v2/api_controller.rb +1 -2
  6. data/app/controllers/katello/api/v2/capsule_content_controller.rb +2 -2
  7. data/app/controllers/katello/api/v2/content_credentials_controller.rb +24 -24
  8. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +98 -0
  9. data/app/controllers/katello/api/v2/content_exports_controller.rb +88 -0
  10. data/app/controllers/katello/api/v2/content_imports_controller.rb +59 -0
  11. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +56 -94
  13. data/app/controllers/katello/api/v2/content_views_controller.rb +2 -2
  14. data/app/controllers/katello/api/v2/host_errata_controller.rb +1 -1
  15. data/app/controllers/katello/api/v2/host_packages_controller.rb +6 -6
  16. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +2 -3
  17. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +3 -2
  18. data/app/controllers/katello/api/v2/repositories_controller.rb +5 -19
  19. data/app/controllers/katello/api/v2/simple_content_access_controller.rb +34 -0
  20. data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
  21. data/app/controllers/katello/api/v2/upstream_subscriptions_controller.rb +8 -4
  22. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +1 -1
  23. data/app/helpers/katello/sync_management_helper.rb +0 -2
  24. data/app/lib/actions/candlepin/environment/create.rb +1 -1
  25. data/app/lib/actions/candlepin/environment/set_content.rb +1 -1
  26. data/app/lib/actions/katello/activation_key/create.rb +9 -11
  27. data/app/lib/actions/katello/agent/dispatch_history_presenter.rb +64 -0
  28. data/app/lib/actions/katello/agent_action.rb +107 -0
  29. data/app/lib/actions/katello/applicability/hosts/bulk_generate.rb +6 -2
  30. data/app/lib/actions/katello/bulk_agent_action.rb +21 -0
  31. data/app/lib/actions/katello/capsule_content/sync.rb +8 -8
  32. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +16 -2
  33. data/app/lib/actions/katello/check_matching_content.rb +17 -0
  34. data/app/lib/actions/katello/content_view/environment_create.rb +6 -8
  35. data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -1
  36. data/app/lib/actions/katello/content_view/publish.rb +2 -2
  37. data/app/lib/actions/katello/content_view_version/import.rb +2 -1
  38. data/app/lib/actions/katello/content_view_version/import_library.rb +17 -0
  39. data/app/lib/actions/katello/content_view_version/incremental_update.rb +30 -10
  40. data/app/lib/actions/katello/host/erratum/applicable_errata_install.rb +1 -1
  41. data/app/lib/actions/katello/host/erratum/install.rb +8 -26
  42. data/app/lib/actions/katello/host/hypervisors_update.rb +4 -4
  43. data/app/lib/actions/katello/host/package/install.rb +8 -21
  44. data/app/lib/actions/katello/host/package/remove.rb +8 -20
  45. data/app/lib/actions/katello/host/package/update.rb +9 -22
  46. data/app/lib/actions/katello/host/package_group/install.rb +8 -21
  47. data/app/lib/actions/katello/host/package_group/remove.rb +8 -20
  48. data/app/lib/actions/katello/host/update_system_purpose.rb +1 -1
  49. data/app/lib/actions/katello/organization/create.rb +3 -5
  50. data/app/lib/actions/katello/organization/destroy.rb +1 -1
  51. data/app/lib/actions/katello/organization/manifest_delete.rb +3 -5
  52. data/app/lib/actions/katello/organization/manifest_import.rb +1 -1
  53. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -1
  54. data/app/lib/actions/katello/repository/check_matching_content.rb +3 -1
  55. data/app/lib/actions/katello/repository/clone_contents.rb +8 -11
  56. data/app/lib/actions/katello/repository/create.rb +0 -8
  57. data/app/lib/actions/katello/repository/filtered_index_content.rb +3 -0
  58. data/app/lib/actions/katello/repository/index_content.rb +1 -0
  59. data/app/lib/actions/katello/repository/multi_clone_contents.rb +9 -12
  60. data/app/lib/actions/katello/repository/update.rb +0 -8
  61. data/app/lib/actions/middleware/execute_if_contents_changed.rb +4 -1
  62. data/app/lib/actions/middleware/record_smart_proxy_sync_history.rb +24 -4
  63. data/app/lib/actions/pulp/consumer.rb +0 -11
  64. data/app/lib/actions/pulp/orchestration/repository/refresh_repos.rb +0 -6
  65. data/app/lib/actions/pulp3/capsule_content/refresh_distribution.rb +3 -3
  66. data/app/lib/actions/pulp3/content_migration.rb +10 -0
  67. data/app/lib/actions/pulp3/content_migration_presenter.rb +59 -0
  68. data/app/lib/actions/pulp3/content_view/delete_repository_references.rb +1 -1
  69. data/app/lib/actions/pulp3/content_view_version/export.rb +3 -2
  70. data/app/lib/actions/pulp3/import_migration.rb +6 -1
  71. data/app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb +2 -1
  72. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +17 -13
  73. data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +60 -0
  74. data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +0 -4
  75. data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +16 -3
  76. data/app/lib/actions/pulp3/orchestration/repository/refresh_repos.rb +1 -6
  77. data/app/lib/actions/pulp3/repository/copy_content.rb +1 -1
  78. data/app/lib/actions/pulp3/repository/delete.rb +1 -1
  79. data/app/lib/actions/pulp3/repository/save_version.rb +1 -1
  80. data/app/lib/actions/pulp3/repository/upload_tag.rb +18 -0
  81. data/app/lib/katello/agent/base_message.rb +38 -0
  82. data/app/lib/katello/agent/client_message_handler.rb +60 -0
  83. data/app/lib/katello/agent/connection.rb +24 -0
  84. data/app/lib/katello/agent/install_errata_message.rb +25 -0
  85. data/app/lib/katello/agent/install_package_group_message.rb +25 -0
  86. data/app/lib/katello/agent/install_package_message.rb +28 -0
  87. data/app/lib/katello/agent/remove_package_group_message.rb +25 -0
  88. data/app/lib/katello/agent/remove_package_message.rb +28 -0
  89. data/app/lib/katello/agent/update_package_message.rb +25 -0
  90. data/app/lib/katello/concerns/base_template_scope_extensions.rb +8 -0
  91. data/app/lib/katello/event_daemon/monitor.rb +53 -0
  92. data/app/lib/katello/event_daemon/runner.rb +99 -0
  93. data/app/lib/katello/event_daemon/services/agent_event_receiver.rb +62 -0
  94. data/app/lib/katello/logging.rb +32 -0
  95. data/app/lib/katello/messaging/connection.rb +1 -7
  96. data/app/lib/katello/messaging/received_message.rb +1 -1
  97. data/app/lib/katello/qpid/connection.rb +130 -0
  98. data/app/lib/katello/validators/content_view_puppet_module_validator.rb +1 -1
  99. data/app/models/katello/activation_key.rb +2 -2
  100. data/app/models/katello/agent/dispatch_history.rb +17 -0
  101. data/app/models/katello/authorization/content_view_version.rb +25 -2
  102. data/app/models/katello/authorization/content_view_version_export_history.rb +1 -1
  103. data/app/models/katello/authorization/organization.rb +8 -0
  104. data/app/models/katello/candlepin/repository_mapper.rb +1 -1
  105. data/app/models/katello/concerns/host_managed_extensions.rb +3 -0
  106. data/app/models/katello/concerns/operatingsystem_extensions.rb +2 -0
  107. data/app/models/katello/concerns/organization_extensions.rb +2 -2
  108. data/app/models/katello/concerns/pulp_database_unit.rb +7 -0
  109. data/app/models/katello/concerns/redhat_extensions.rb +2 -2
  110. data/app/models/katello/concerns/smart_proxy_extensions.rb +31 -5
  111. data/app/models/katello/content_migration_progress.rb +4 -0
  112. data/app/models/katello/content_view.rb +10 -1
  113. data/app/models/katello/content_view_environment.rb +2 -2
  114. data/app/models/katello/content_view_history.rb +2 -1
  115. data/app/models/katello/content_view_package_filter.rb +1 -1
  116. data/app/models/katello/content_view_puppet_environment.rb +2 -2
  117. data/app/models/katello/content_view_version.rb +2 -1
  118. data/app/models/katello/content_view_version_export_history.rb +26 -1
  119. data/app/models/katello/erratum.rb +3 -1
  120. data/app/models/katello/events/delete_host_agent_queue.rb +19 -0
  121. data/app/models/katello/glue/candlepin/pool.rb +2 -0
  122. data/app/models/katello/glue/pulp/repo.rb +0 -6
  123. data/app/models/katello/glue/pulp/repos.rb +1 -22
  124. data/app/models/katello/host/subscription_facet.rb +4 -0
  125. data/app/models/katello/ping.rb +12 -4
  126. data/app/models/katello/pool.rb +5 -0
  127. data/app/models/katello/product.rb +3 -3
  128. data/app/models/katello/repository.rb +10 -3
  129. data/app/models/katello/subscription_status.rb +3 -2
  130. data/app/models/setting/content.rb +0 -2
  131. data/app/presenters/katello/host_subscription_presenter.rb +3 -4
  132. data/app/presenters/katello/host_subscriptions_presenter.rb +24 -0
  133. data/app/services/katello/agent/dispatcher.rb +66 -0
  134. data/app/services/katello/applicability/applicable_content_helper.rb +44 -15
  135. data/app/services/katello/candlepin_event_listener.rb +12 -19
  136. data/app/services/katello/event_monitor/poller_thread.rb +3 -11
  137. data/app/services/katello/pulp/smart_proxy_repository.rb +0 -15
  138. data/app/services/katello/pulp3/api/docker.rb +4 -0
  139. data/app/services/katello/pulp3/content_view_version/export.rb +63 -5
  140. data/app/services/katello/pulp3/content_view_version/import.rb +40 -0
  141. data/app/services/katello/pulp3/content_view_version/import_export_common.rb +0 -16
  142. data/app/services/katello/pulp3/content_view_version/import_validator.rb +26 -49
  143. data/app/services/katello/pulp3/docker_manifest.rb +1 -0
  144. data/app/services/katello/pulp3/docker_tag.rb +1 -0
  145. data/app/services/katello/pulp3/migration.rb +44 -9
  146. data/app/services/katello/pulp3/repository.rb +13 -4
  147. data/app/services/katello/pulp3/repository/docker.rb +5 -0
  148. data/app/services/katello/pulp3/repository/yum.rb +15 -9
  149. data/app/services/katello/pulp3/task.rb +4 -0
  150. data/app/services/katello/pulp3/task_group.rb +4 -0
  151. data/app/services/katello/registration_manager.rb +10 -0
  152. data/app/services/katello/repository_type.rb +1 -1
  153. data/app/views/foreman/smart_proxies/_content_tab.html.erb +4 -47
  154. data/app/views/foreman/smart_proxies/show.html.erb +1 -1
  155. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +22 -25
  156. data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +1 -0
  157. data/app/views/katello/api/v2/content_views/show.json.rabl +6 -0
  158. data/app/views/katello/api/v2/organizations/show.json.rabl +7 -9
  159. data/app/views/katello/layouts/react.html.erb +3 -2
  160. data/app/views/katello/sync_management/_products.html.erb +1 -1
  161. data/app/views/overrides/activation_keys/_host_tab_pane.html.erb +1 -5
  162. data/app/views/overrides/organizations/_edit_override.html.erb +1 -4
  163. data/app/views/overrides/smart_proxies/_environment_tab.html.erb +1 -1
  164. data/app/views/overrides/smart_proxies/_environment_tab_pane.html.erb +1 -1
  165. data/config/katello.yaml.example +0 -3
  166. data/config/routes/api/v2.rb +31 -13
  167. data/db/migrate/20150930183738_migrate_content_hosts.rb +1 -1
  168. data/db/migrate/20191204214919_add_content_view_version_counts.rb +0 -1
  169. data/db/migrate/20200514092553_move_katello_fields_from_hostgroups.katello.rb +5 -2
  170. data/db/migrate/20201119211133_pulp3_migration_progress.rb +9 -0
  171. data/db/migrate/20210119162528_delete_puppet_and_ostree_repos.rb +56 -0
  172. data/db/migrate/20210122200618_create_katello_agent_dispatch_history.rb +11 -0
  173. data/db/migrate/20210125161911_delete_erratum_install_batch_size_setting.rb +5 -0
  174. data/db/migrate/20210128231228_add_type_and_from_cvv_to_cvv_export_history.rb +14 -0
  175. data/db/migrate/20210201163238_migrate_background_download_policy_to_migrate.rb +7 -0
  176. data/db/migrate/20210208213920_add_available_module_stream_context.rb +8 -0
  177. data/db/seeds.d/104-proxy.rb +1 -1
  178. data/db/seeds.d/111-upgrade_tasks.rb +2 -1
  179. data/engines/bastion/app/assets/javascripts/bastion/auth/authorization.service.js +1 -1
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +1 -1
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/katello-agent-notice.html +1 -1
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-system-purpose-modal.html +35 -40
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register-os-client.directive.js +17 -0
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -2
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-client.html +12 -5
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-deb-client.html +38 -0
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-oracle-client.html +5 -0
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-sles-client.html +28 -0
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register.html +14 -11
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-activation-keys.controller.js +8 -3
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +9 -3
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +2 -2
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +1 -1
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +4 -0
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +78 -7
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +17 -20
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +17 -24
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +1292 -1170
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +17 -20
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +858 -807
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +18 -19
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +17 -24
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +17 -18
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +986 -971
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +19 -20
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +9 -9
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +2 -2
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/download-policy.service.js +0 -1
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +1 -1
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +2 -2
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscription-start-date.directive.js +21 -0
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscription-type.directive.js +16 -0
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-start-date.html +2 -0
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-type.html +18 -0
  217. data/lib/katello/engine.rb +12 -6
  218. data/lib/katello/middleware/event_daemon.rb +1 -1
  219. data/lib/katello/permission_creator.rb +26 -5
  220. data/lib/katello/plugin.rb +3 -2
  221. data/lib/katello/tasks/delete_orphaned_content.rake +1 -3
  222. data/lib/katello/tasks/jenkins.rake +1 -1
  223. data/lib/katello/tasks/pulp3_content_switchover.rake +1 -1
  224. data/lib/katello/tasks/pulp3_migration.rake +18 -6
  225. data/lib/katello/tasks/pulp3_migration_abort.rake +7 -2
  226. data/lib/katello/tasks/pulp3_migration_stats.rake +28 -8
  227. data/lib/katello/tasks/pulp3_post_migration_check.rake +1 -3
  228. data/lib/katello/tasks/receptor/extract_orgs.rake +1 -1
  229. data/lib/katello/tasks/reimport.rake +1 -1
  230. data/lib/katello/tasks/repository.rake +3 -5
  231. data/lib/katello/tasks/reset.rake +0 -15
  232. data/lib/katello/tasks/upgrades/4.0/remove_ostree_puppet_content.rake +16 -0
  233. data/lib/katello/version.rb +1 -1
  234. data/lib/proxy_api/container_gateway.rb +21 -0
  235. data/locale/action_names.rb +51 -51
  236. data/locale/bn/katello.edit.po +8538 -0
  237. data/locale/bn/katello.po +136 -51
  238. data/locale/bn/katello.po.time_stamp +0 -0
  239. data/locale/cs/katello.edit.po +8440 -0
  240. data/locale/cs/katello.po +136 -49
  241. data/locale/cs/katello.po.time_stamp +0 -0
  242. data/locale/de/katello.edit.po +8344 -0
  243. data/locale/de/katello.po +136 -48
  244. data/locale/de/katello.po.time_stamp +0 -0
  245. data/locale/en/katello.edit.po +8161 -0
  246. data/locale/en/katello.po +136 -48
  247. data/locale/en/katello.po.time_stamp +0 -0
  248. data/locale/es/katello.edit.po +8306 -0
  249. data/locale/es/katello.po +136 -48
  250. data/locale/es/katello.po.time_stamp +0 -0
  251. data/locale/fr/katello.edit.po +8356 -0
  252. data/locale/fr/katello.po +136 -48
  253. data/locale/fr/katello.po.time_stamp +0 -0
  254. data/locale/gu/katello.edit.po +8540 -0
  255. data/locale/gu/katello.po +136 -51
  256. data/locale/gu/katello.po.time_stamp +0 -0
  257. data/locale/hi/katello.edit.po +8537 -0
  258. data/locale/hi/katello.po +136 -51
  259. data/locale/hi/katello.po.time_stamp +0 -0
  260. data/locale/it/katello.edit.po +8293 -0
  261. data/locale/it/katello.po +136 -48
  262. data/locale/it/katello.po.time_stamp +0 -0
  263. data/locale/ja/katello.edit.po +8322 -0
  264. data/locale/ja/katello.po +136 -48
  265. data/locale/ja/katello.po.time_stamp +0 -0
  266. data/locale/katello.pot +941 -767
  267. data/locale/kn/katello.edit.po +8538 -0
  268. data/locale/kn/katello.po +136 -51
  269. data/locale/kn/katello.po.time_stamp +0 -0
  270. data/locale/ko/katello.edit.po +8289 -0
  271. data/locale/ko/katello.po +136 -48
  272. data/locale/ko/katello.po.time_stamp +0 -0
  273. data/locale/mr/katello.edit.po +8502 -0
  274. data/locale/mr/katello.po +136 -51
  275. data/locale/mr/katello.po.time_stamp +0 -0
  276. data/locale/or/katello.edit.po +8538 -0
  277. data/locale/or/katello.po +136 -51
  278. data/locale/or/katello.po.time_stamp +0 -0
  279. data/locale/pa/katello.edit.po +8524 -0
  280. data/locale/pa/katello.po +136 -51
  281. data/locale/pa/katello.po.time_stamp +0 -0
  282. data/locale/pt/katello.edit.po +8255 -0
  283. data/locale/pt/katello.po +136 -51
  284. data/locale/pt/katello.po.time_stamp +0 -0
  285. data/locale/pt_BR/katello.edit.po +8289 -0
  286. data/locale/pt_BR/katello.po +136 -48
  287. data/locale/pt_BR/katello.po.time_stamp +0 -0
  288. data/locale/ru/katello.edit.po +8309 -0
  289. data/locale/ru/katello.po +136 -48
  290. data/locale/ru/katello.po.time_stamp +0 -0
  291. data/locale/ta/katello.edit.po +8536 -0
  292. data/locale/ta/katello.po +136 -51
  293. data/locale/ta/katello.po.time_stamp +0 -0
  294. data/locale/te/katello.edit.po +8536 -0
  295. data/locale/te/katello.po +136 -51
  296. data/locale/te/katello.po.time_stamp +0 -0
  297. data/locale/zh_CN/katello.edit.po +8288 -0
  298. data/locale/zh_CN/katello.po +136 -48
  299. data/locale/zh_CN/katello.po.time_stamp +0 -0
  300. data/locale/zh_TW/katello.edit.po +8420 -0
  301. data/locale/zh_TW/katello.po +136 -48
  302. data/locale/zh_TW/katello.po.time_stamp +0 -0
  303. data/package.json +1 -1
  304. data/webpack/__mocks__/foremanReact/Root/Context/ForemanContext.js +0 -1
  305. data/webpack/__mocks__/foremanReact/components/Pagination/PaginationHooks.js +2 -0
  306. data/webpack/__mocks__/foremanReact/components/common/dates/LongDateTime.js +5 -0
  307. data/webpack/{scenes/ContentViews/Details/Repositories → components/SelectableDropdown}/SelectableDropdown.js +20 -3
  308. data/webpack/components/SelectableDropdown/__tests__/SelectableDropdown.test.js +45 -0
  309. data/webpack/components/SelectableDropdown/index.js +3 -0
  310. data/webpack/components/Table/TableWrapper.js +2 -1
  311. data/webpack/components/Table/helpers.js +14 -0
  312. data/webpack/components/TypeAhead/TypeAhead.js +2 -1
  313. data/webpack/components/TypeAhead/pf3Search/TypeAheadSearch.js +2 -1
  314. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +0 -1
  315. data/webpack/containers/Application/overrides.scss +6 -0
  316. data/webpack/index.js +6 -0
  317. data/webpack/redux/actions/RedHatRepositories/helpers.js +5 -5
  318. data/webpack/scenes/ContentViews/ContentViewsActions.js +31 -2
  319. data/webpack/scenes/ContentViews/ContentViewsConstants.js +5 -1
  320. data/webpack/scenes/ContentViews/Copy/ContentViewCopySelectors.js +16 -0
  321. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +77 -0
  322. data/webpack/scenes/ContentViews/Copy/CopyContentViewModal.js +44 -0
  323. data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +42 -0
  324. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +39 -0
  325. data/webpack/scenes/ContentViews/Copy/index.js +4 -0
  326. data/webpack/scenes/ContentViews/Create/ContentViewCreateSelectors.js +16 -0
  327. data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +58 -0
  328. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +175 -0
  329. data/webpack/scenes/ContentViews/Create/CreateContentViewModal.js +27 -0
  330. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +42 -0
  331. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +92 -0
  332. data/webpack/scenes/ContentViews/Create/index.js +4 -0
  333. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +16 -0
  334. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +20 -1
  335. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +17 -7
  336. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +19 -13
  337. data/webpack/scenes/ContentViews/Details/Filters/ContentType.js +40 -0
  338. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +124 -0
  339. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.fixtures.json +134 -0
  340. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +92 -0
  341. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +44 -25
  342. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.test.js +17 -7
  343. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +24 -0
  344. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +53 -3
  345. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +4 -3
  346. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +41 -0
  347. data/webpack/scenes/ContentViews/helpers.js +13 -0
  348. data/webpack/scenes/SmartProxy/Content.js +17 -0
  349. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +11 -0
  350. data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +3 -0
  351. data/webpack/scenes/SmartProxy/SmartProxyContentSelectors.js +16 -0
  352. data/webpack/scenes/SmartProxy/SmartProxyContentTable.js +152 -0
  353. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentResult.fixtures.json +140 -0
  354. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +38 -0
  355. data/webpack/scenes/SmartProxy/index.js +4 -0
  356. data/webpack/scenes/Subscriptions/Manifest/ManifestActions.js +3 -3
  357. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManifestActions.test.js +2 -2
  358. data/webpack/scenes/Subscriptions/Manifest/__tests__/SimpleContentAccess.test.js +2 -2
  359. data/webpack/test-utils/react-testing-lib-wrapper.js +5 -2
  360. data/webpack/utils/helpers.js +3 -0
  361. metadata +160 -40
  362. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +0 -114
  363. data/app/lib/actions/pulp/consumer/abstract_content_action.rb +0 -71
  364. data/app/lib/actions/pulp/consumer/content_install.rb +0 -43
  365. data/app/lib/actions/pulp/consumer/content_uninstall.rb +0 -26
  366. data/app/lib/actions/pulp/consumer/content_update.rb +0 -32
  367. data/app/overrides/disable_turbolinks_on_proxies_index.rb +0 -5
  368. data/app/services/katello/event_daemon.rb +0 -135
  369. data/app/services/katello/pulp/content_counts_calculator.rb +0 -60
  370. data/db/functions/empty_v01.sql +0 -7
  371. data/db/functions/evr_trigger_v01.sql +0 -9
  372. data/db/functions/isalpha_v01.sql +0 -11
  373. data/db/functions/isalphanum_v01.sql +0 -12
  374. data/db/functions/isdigit_v01.sql +0 -10
  375. data/db/functions/rpmver_array_v01.sql +0 -60
  376. data/lib/katello/tasks/common.rake +0 -7
  377. data/lib/katello/tasks/reports.rake +0 -4
  378. data/lib/katello/tasks/upgrades/3.10/update_gpg_key_urls.rake +0 -32
  379. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.scss +0 -5
  380. data/webpack/scenes/ContentViews/Table/actionResolver.js +0 -28
@@ -329,7 +329,7 @@ class MigrateContentHosts < ActiveRecord::Migration[4.2]
329
329
  # rubocop:disable Metrics/MethodLength
330
330
  # rubocop:disable Metrics/AbcSize
331
331
  def up
332
- if User.where(:login => User::ANONYMOUS_API_ADMIN).first.nil?
332
+ unless User.unscoped.where(:login => User::ANONYMOUS_API_ADMIN).exists?
333
333
  logger.warn("Foreman anonymous admin does not exist, skipping content host migration.")
334
334
  return
335
335
  end
@@ -2,6 +2,5 @@ class AddContentViewVersionCounts < ActiveRecord::Migration[5.2]
2
2
  def change
3
3
  add_column :katello_content_view_versions, :content_counts, :text
4
4
  Katello::ContentViewVersion.reset_column_information
5
- Katello::ContentViewVersion.all.each(&:update_content_counts!)
6
5
  end
7
6
  end
@@ -1,6 +1,6 @@
1
1
  class MoveKatelloFieldsFromHostgroups < ActiveRecord::Migration[6.0]
2
2
  def up
3
- if User.where(login: User::ANONYMOUS_ADMIN).exists?
3
+ if User.unscoped.where(login: User::ANONYMOUS_ADMIN).exists?
4
4
  User.as_anonymous_admin do
5
5
  copy_data_from_hostgroup
6
6
  end
@@ -46,7 +46,10 @@ class MoveKatelloFieldsFromHostgroups < ActiveRecord::Migration[6.0]
46
46
  content_facet.kickstart_repository_id = kickstart_repository_id
47
47
  content_facet.content_view_id = content_view_id
48
48
  content_facet.lifecycle_environment_id = lifecycle_environment_id
49
- content_facet.save!
49
+ unless content_facet.save
50
+ Rails.logger.warn("Unable to save content facet hostgroup for #{content_facet.inspect} ")
51
+ Rails.logger.warn(content_facet.errors.full_messages.join("\n"))
52
+ end
50
53
  end
51
54
  end
52
55
  end
@@ -0,0 +1,9 @@
1
+ class Pulp3MigrationProgress < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :katello_content_migration_progresses do |t|
4
+ t.string :progress_message
5
+ t.boolean :canceled, null: false, default: false
6
+ t.string :task_id, null: false, index: {name: 'katello_content_migration_progress_task_id', unique: true }
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,56 @@
1
+ class DeletePuppetAndOstreeRepos < ActiveRecord::Migration[6.0]
2
+ class FakeContentViewPuppetModule < Katello::Model
3
+ self.table_name = 'katello_content_view_puppet_modules'
4
+ end
5
+
6
+ class FakeContentViewPuppetEnvironmentPuppetModule < Katello::Model
7
+ self.table_name = 'katello_content_view_puppet_environment_puppet_modules'
8
+ end
9
+
10
+ class FakeRepositoryPuppetModule < Katello::Model
11
+ self.table_name = 'katello_repository_puppet_modules'
12
+ end
13
+
14
+ class FakeContentViewPuppetEnvironment < Katello::Model
15
+ self.table_name = 'katello_content_view_puppet_environments'
16
+ end
17
+ class FakePuppetModule < Katello::Model
18
+ self.table_name = 'katello_puppet_modules'
19
+ end
20
+ class FakeRepositoryOstreeBranch < Katello::Model
21
+ self.table_name = 'katello_repository_ostree_branches'
22
+ end
23
+ class FakeOstreeBranch < Katello::Model
24
+ self.table_name = 'katello_ostree_branches'
25
+ end
26
+
27
+ def up
28
+ if Katello::Repository.ostree_type.any? || Katello::Repository.puppet_type.any?
29
+ User.as_anonymous_admin do
30
+ FakeContentViewPuppetModule.delete_all
31
+ FakeContentViewPuppetEnvironmentPuppetModule.delete_all
32
+ FakeRepositoryPuppetModule.delete_all
33
+
34
+ FakeContentViewPuppetEnvironment.delete_all
35
+ FakePuppetModule.delete_all
36
+
37
+ Katello::Repository.puppet_type.delete_all
38
+
39
+ FakeRepositoryOstreeBranch.delete_all
40
+ FakeOstreeBranch.delete_all
41
+ Katello::Repository.ostree_type.where.not(:library_instance_id => nil, :environment_id => nil).destroy_all #CV LCE repos
42
+ Katello::Repository.ostree_type.where.not(:library_instance_id => nil).destroy_all # archive repos
43
+ Katello::Repository.ostree_type.destroy_all #all the rest (should just be library repos)
44
+
45
+ Katello::ContentViewVersion.where.not(:content_counts => nil).each do |version|
46
+ version.content_counts.except!('ostree', 'puppet_module')
47
+ version.save
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ def down
54
+ fail ActiveRecord::IrreversibleMigration
55
+ end
56
+ end
@@ -0,0 +1,11 @@
1
+ class CreateKatelloAgentDispatchHistory < ActiveRecord::Migration[6.0]
2
+ def change
3
+ create_table :katello_agent_dispatch_histories do |t|
4
+ t.integer :host_id, null: false, foreign_key: true
5
+ t.datetime :accepted_at
6
+ t.string :dynflow_execution_plan_id
7
+ t.integer :dynflow_step_id
8
+ t.text :result
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ class DeleteErratumInstallBatchSizeSetting < ActiveRecord::Migration[6.0]
2
+ def change
3
+ Setting.where(name: 'erratum_install_batch_size').delete_all
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class AddTypeAndFromCvvToCvvExportHistory < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :katello_content_view_version_export_histories,
4
+ :export_type, :string,
5
+ :default => ::Katello::ContentViewVersionExportHistory::COMPLETE, :null => false
6
+ add_index :katello_content_view_version_export_histories, :export_type, name: 'katello_cvveh_export_type'
7
+
8
+ ::Katello::ContentViewVersionExportHistory.reset_column_information
9
+ ::Katello::ContentViewVersionExportHistory.all.each do |cvve|
10
+ next if cvve.export_type == cvve.export_type_from_metadata
11
+ cvve.update!(export_type: cvve.export_type_from_metadata)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ class MigrateBackgroundDownloadPolicyToMigrate < ActiveRecord::Migration[6.0]
2
+ def change
3
+ Katello::RootRepository.where(:download_policy => ::Runcible::Models::YumImporter::DOWNLOAD_BACKGROUND).each do |root_repo|
4
+ root_repo.update_column(:download_policy, ::Runcible::Models::YumImporter::DOWNLOAD_IMMEDIATE)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ class AddAvailableModuleStreamContext < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :katello_available_module_streams, :context, :string, :null => true, :default => nil
4
+
5
+ remove_index :katello_available_module_streams, name: :katello_available_module_streams_name_stream
6
+ add_index :katello_available_module_streams, [:name, :stream, :context], :unique => true, :name => :katello_available_module_streams_name_stream_context
7
+ end
8
+ end
@@ -16,7 +16,7 @@ User.as(::User.anonymous_api_admin.login) do
16
16
  fail "Unable to create proxy feature: #{format_errors feature}"
17
17
  end
18
18
 
19
- ["Pulp", "Pulp Node", "Pulpcore"].each do |input|
19
+ ["Pulp", "Pulp Node", "Pulpcore", "Container_Gateway"].each do |input|
20
20
  f = Feature.where(:name => input).first_or_create
21
21
  fail "Unable to create proxy feature: #{format_errors f}" if f.nil? || f.errors.any?
22
22
  end
@@ -14,6 +14,7 @@ UpgradeTask.define_tasks(:katello) do
14
14
  {:name => 'katello:upgrades:3.15:set_sub_facet_dmi_uuid'},
15
15
  {:name => 'katello:upgrades:3.15:reindex_rpm_modular'},
16
16
  {:name => 'katello:upgrades:3.16:update_applicable_el8_hosts'},
17
- {:name => 'katello:upgrades:3.18:add_cvv_export_history_metadata'}
17
+ {:name => 'katello:upgrades:3.18:add_cvv_export_history_metadata'},
18
+ {:name => 'katello:upgrades:4.0:remove_ostree_puppet_content'}
18
19
  ]
19
20
  end
@@ -20,7 +20,7 @@ angular.module('Bastion.auth').service('Authorization', ['CurrentUser', 'Permiss
20
20
  allowedTo = model.permissions[permissionName];
21
21
  } else {
22
22
  angular.forEach(Permissions, function (permission) {
23
- if (permission.permission.name === permissionName) {
23
+ if (permission.name === permissionName) {
24
24
  allowedTo = true;
25
25
  }
26
26
  });
@@ -116,7 +116,7 @@ angular.module('Bastion.capsule-content').controller('CapsuleContentController',
116
116
  };
117
117
 
118
118
  $scope.syncState = syncState;
119
-
119
+ $scope.smartProxyId = capsuleId;
120
120
  $scope.expandEnvironments = {};
121
121
 
122
122
  refreshSyncStatus();
@@ -1,7 +1,7 @@
1
1
  <section>
2
2
  <p bst-alert="warning" >
3
3
  <span translate>
4
- Katello-agent is deprecated and will be removed in Katello 4.0. Consider migrating to Remote Execution.
4
+ Katello-agent is deprecated and will be removed in a future release.
5
5
  </span>
6
6
  </p>
7
7
  </section>
@@ -1,8 +1,7 @@
1
1
  <div data-extend-template="components/views/bst-modal.html">
2
- <h4 data-block="modal-header" translate>Content Host System Purpose</h4>
2
+ <h2 data-block="modal-header" translate>Assign System Purpose</h2>
3
3
 
4
4
  <div data-block="modal-body">
5
- <h4 translate>Assign System Purpose:</h4>
6
5
 
7
6
  <div class="row">
8
7
  <div class="col-sm-12">
@@ -10,67 +9,63 @@
10
9
  </div>
11
10
  </div>
12
11
 
12
+ <div bst-alert="info">
13
+ <span translate>
14
+ This change will be applied to <b>{{ hostCount }} systems.</b>
15
+ </span>
16
+ </div>
17
+ <br />
18
+
13
19
  <form name="contentHostContentForm" class="form" ng-hide="content.workingMode">
14
- <div>
15
- <label translate>Service Level:</label>
20
+ <div><b>
21
+ <dl class="dl-horizontal dl-horizontal-left">
22
+ <dt><label translate>Service Level (SLA):</label></dt>
16
23
 
17
- <select type="select"
18
- ng-options="item for item in defaultServiceLevels"
19
- ng-model="selectedServiceLevels">
20
- </select>
21
- <br /><br />
24
+ <dd><select type="select"
25
+ ng-options="item for item in defaultServiceLevels"
26
+ ng-model="selectedServiceLevels">
27
+ </select></dd>
28
+ <br /><br />
22
29
 
23
- <label translate>Usage Type:</label>
30
+ <dt style="margin-left: -50px;"><label translate>Usage Type:</label></dt>
24
31
 
25
- <select type="select"
32
+ <dd><select type="select"
26
33
  ng-options="item for item in defaultUsages"
27
34
  ng-model="selectedRoles">
28
- </select>
35
+ </select></dd>
29
36
  <br /><br />
30
37
 
31
- <label translate>Role:</label>
38
+ <dt style="margin-left: -98px;"><label translate>Role:</label></dt>
32
39
 
33
- <select type="select"
40
+ <dd><select type="select"
34
41
  ng-options="item for item in defaultRoles"
35
42
  ng-model="selectedUsages">
36
- </select>
43
+ </select></dd>
37
44
  <br /><br />
38
45
 
39
- <label ng-hide="!purposeAddonsList().length" translate>Add ons:</label>
40
- <div class="help-block" style="text-align:left;">
41
- <p translate>ctrl-click or shift-click to select multiple Add ons</p>
42
- </div>
46
+ <dt style="margin-left: -75px;"><label ng-hide="!purposeAddonsList().length" translate>Add ons:</label></dt>
43
47
 
44
- <select multiple ng-multiple="true"
48
+ <dd><select multiple ng-multiple="true"
45
49
  ng-hide="!purposeAddonsList().length"
46
50
  ng-options="item for item in purposeAddonsList()"
47
51
  ng-model="selectedAddons">
48
- </select>
49
- <br /><br />
50
-
51
- </div>
52
-
53
- <div bst-alert="info" ng-show="showConfirm">
54
- <span translate>
55
- Set System Purpose values on {{ hostCount }} selected content hosts?
56
- </span>
57
- <div>
58
- <br />
59
- <button type="button" class="btn btn-primary" ng-click="showConfirm = false; performAction()" translate>Assign</button>
52
+ </select></dd>
53
+ <div class="help-block" style="text-align:center; margin-left: -180px;">
54
+ <p translate>ctrl-click or shift-click to select multiple Add ons</p>
60
55
  </div>
56
+ <br /><br />
57
+ </dl></b>
61
58
  </div>
62
-
63
- <button class="btn btn-primary"
64
- type="button"
65
- ng-hide="showConfirm"
66
- ng-click="showConfirm = true;">
67
- <span translate>Assign</span>
68
- </button>
69
-
70
59
  </form>
71
60
  </div>
72
61
 
73
62
  <div data-block="modal-footer">
63
+ <button class="btn btn-primary"
64
+ type="button"
65
+ ng-click="performAction()">
66
+ <span translate>Assign</span>
67
+ </button>
68
+
74
69
  <button type="button" class="btn btn-default" ng-click="cancel()" translate>
75
70
  Cancel
76
71
  </button>
@@ -0,0 +1,17 @@
1
+ angular.module('Bastion.content-hosts').directive('registerOsClient', function () {
2
+ return {
3
+ restrict: 'E',
4
+ scope: {
5
+ userOs: '='
6
+ },
7
+ link: function($scope) {
8
+ $scope.$watch('userOs', function(userOs) {
9
+ if (userOs && userOs.length) {
10
+ $scope.dynamicTemplateUrl = 'content-hosts/views/register-' + userOs + '.html';
11
+ }
12
+ });
13
+ },
14
+
15
+ template: '<ng-include src="dynamicTemplateUrl"></ng-include>'
16
+ };
17
+ });
@@ -323,7 +323,7 @@
323
323
 
324
324
  <dl class="dl-horizontal dl-horizontal-left">
325
325
  <dt translate>Registered</dt>
326
- <dd><short-date-time date="host.created_at" /></dd>
326
+ <dd><long-date-time date="host.created_at" /></dd>
327
327
 
328
328
  <dt translate> Registered By</dt>
329
329
  <dd>
@@ -350,7 +350,7 @@
350
350
  </dd>
351
351
 
352
352
  <dt translate>Last Checkin</dt>
353
- <dd><short-date-time date="host.subscription_facet_attributes.last_checkin" default="'Never checked in' | translate" /></dd>
353
+ <dd><long-date-time date="host.subscription_facet_attributes.last_checkin" default="'Never checked in' | translate" /></dd>
354
354
  </dl>
355
355
 
356
356
  <div class="divider"></div>
@@ -131,8 +131,8 @@
131
131
  <td bst-table-cell>{{ host.operatingsystem_name }}</td>
132
132
  <td bst-table-cell>{{ host.content_facet_attributes.lifecycle_environment.name }}</td>
133
133
  <td bst-table-cell>{{ host.content_facet_attributes.content_view.name || "" }}</td>
134
- <td bst-table-cell><short-date-time date="host.subscription_facet_attributes.registered_at" default="'Never registered' | translate" /></td>
135
- <td bst-table-cell><short-date-time date="host.subscription_facet_attributes.last_checkin" default="'Never checked in' | translate" /></td>
134
+ <td bst-table-cell><long-date-time date="host.subscription_facet_attributes.registered_at" default="'Never registered' | translate" /></td>
135
+ <td bst-table-cell><long-date-time date="host.subscription_facet_attributes.last_checkin" default="'Never checked in' | translate" /></td>
136
136
  </tr>
137
137
  </tbody>
138
138
  </table>
@@ -1,3 +1,10 @@
1
+ <div ng-controller="ContentHostRegisterController"><li>
2
+ <p translate>Register using subscription-manager:</p>
3
+ <p translate>Using an Activation Key:</p>
4
+ <pre><code>subscription-manager register --org="{{ organization.label }}" --activationkey="&ltActivation Key Name&gt"</code></pre>
5
+ <p translate>Using a username and password:</p>
6
+ <pre><code>subscription-manager register --org="{{ organization.label }}" --environment="Library"</code></pre>
7
+ </li>
1
8
  <li>
2
9
  <p translate>Install client package:</p>
3
10
 
@@ -7,15 +14,15 @@
7
14
  <p translate>Tracer helps administrators identify applications that need to be restarted after a system is patched. To optionally report tracer information:</p>
8
15
  <pre><code>yum -y install katello-host-tools-tracer</code></pre>
9
16
 
10
- <p translate>For remote actions via katello-agent:</p>
11
- <pre><code>yum -y install katello-agent</code></pre>
12
- <section>
17
+ <p ng-hide="remoteExecutionByDefault" translate>For remote actions via katello-agent:</p>
18
+ <pre ng-hide="remoteExecutionByDefault" ><code>yum -y install katello-agent</code></pre>
19
+ <section ng-hide="remoteExecutionByDefault" >
13
20
  <p bst-alert="warning" >
14
21
  <span translate>
15
- Katello-agent is deprecated and will be removed in Katello 4.0. Consider migrating to Remote Execution.
22
+ Katello-agent is deprecated and will be removed in a future release.
16
23
  </span>
17
24
  </p>
18
25
  </section>
19
26
 
20
27
  <p translate>Learn more about these packages in the <a href="https://theforeman.org/plugins/katello/">Documentation</a> </p>
21
- </li>
28
+ </li></div>
@@ -0,0 +1,38 @@
1
+ <div ng-controller="ContentHostRegisterController">
2
+ <li ng-hide="noCapsulesFound">
3
+ <p translate>Select a Content Source:</p>
4
+ <p><select ng-model="selectedCapsule" ng-options="capsule.name for capsule in capsules.results"></select></p>
5
+ </li>
6
+
7
+ <li>
8
+ <p>Add the GPG public key used to sign DEB packages from your system to download the Debian/Ubuntu client from your system:</p>
9
+
10
+ <pre><code>apt-get -y install gnupg
11
+ mkdir -p /etc/apt/trusted.gpg.d
12
+ wget "https://{{ noCapsulesFound ? katelloHostname : hostname(selectedCapsule.url) }}/pub/pulp_deb_signing.key" -O - | apt-key add -</code></pre>
13
+ </li>
14
+
15
+ <li>
16
+ Create a new repository file which contains the Debian/Ubuntu client. This example chooses Ubuntu 20.04:
17
+
18
+ <pre><code>mkdir -p /etc/apt/sources.list.d
19
+ cat &lt /etc/apt/sources.list &lt&lt'EOF'
20
+ deb http://{{ noCapsulesFound ? katelloHostname : hostname(selectedCapsule.url) }}/pulp/deb/{{ organization.label }}/Library/custom/Ubuntu_Client/Ubuntu_Client_20_04/ default all
21
+ EOF</code></pre>
22
+ <p>Here Ubuntu_Client is a product name, Ubuntu_Client_20_04 is the repository inside the product, and Library is a lifecycle environment.</p>
23
+ </li>
24
+ <li>
25
+ Install apt-transport-katello and katello-upload-profile. This depends on and automatically installs the subscription-manager for Debian/Ubuntu:
26
+
27
+ <pre><code>apt-get update && apt-get -y install apt-transport-katello katello-upload-profile</code></pre></li>
28
+ <li>
29
+ Download and execute a script from your system to install all necessary certificates:
30
+
31
+ <pre><code>wget --no-check-certificate -O katello-rhsm-consumer https://{{ noCapsulesFound ? katelloHostname : hostname(selectedCapsule.url) }}/pub/katello-rhsm-consumer
32
+ /bin/bash -x katello-rhsm-consumer 2&lt /root/katello-rhsm-consumer.log</code></pre></li>
33
+ <li>
34
+ Register your host with an appropriate activation key:
35
+
36
+ <pre><code>subscription-manager register --org="{{ organization.label }}" --name="&ltHost Name&gt" --activationkey="&ltActivation Key Name&gt"</code></pre>
37
+
38
+ </li></div>