katello 3.12.3 → 3.13.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 (360) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +22 -3
  3. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -2
  4. data/app/controllers/katello/api/v2/activation_keys_controller.rb +32 -15
  5. data/app/controllers/katello/api/v2/ansible_collections_controller.rb +19 -0
  6. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +3 -0
  7. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -0
  8. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +1 -0
  9. data/app/controllers/katello/api/v2/content_views_controller.rb +1 -0
  10. data/app/controllers/katello/api/v2/environments_controller.rb +1 -0
  11. data/app/controllers/katello/api/v2/errata_controller.rb +2 -1
  12. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -0
  13. data/app/controllers/katello/api/v2/host_collections_controller.rb +1 -0
  14. data/app/controllers/katello/api/v2/host_debs_controller.rb +34 -0
  15. data/app/controllers/katello/api/v2/host_errata_controller.rb +51 -4
  16. data/app/controllers/katello/api/v2/host_packages_controller.rb +1 -0
  17. data/app/controllers/katello/api/v2/module_streams_controller.rb +1 -0
  18. data/app/controllers/katello/api/v2/organizations_controller.rb +1 -3
  19. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +18 -0
  20. data/app/controllers/katello/api/v2/products_controller.rb +1 -0
  21. data/app/controllers/katello/api/v2/repositories_controller.rb +46 -11
  22. data/app/controllers/katello/api/v2/repository_sets_controller.rb +6 -5
  23. data/app/controllers/katello/api/v2/srpms_controller.rb +24 -0
  24. data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -0
  25. data/app/controllers/katello/application_controller.rb +1 -0
  26. data/app/controllers/katello/concerns/api/v2/bulk_hosts_extensions.rb +2 -2
  27. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +9 -0
  28. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +2 -0
  29. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +1 -1
  30. data/app/helpers/katello/concerns/dashboard_helper_extensions.rb +13 -10
  31. data/app/lib/actions/candlepin/activation_key/create.rb +7 -1
  32. data/app/lib/actions/candlepin/activation_key/update.rb +7 -1
  33. data/app/lib/actions/candlepin/owner/destroy.rb +1 -1
  34. data/app/lib/actions/candlepin/product/update.rb +17 -0
  35. data/app/lib/actions/helpers/output_propagator.rb +13 -0
  36. data/app/lib/actions/katello/activation_key/create.rb +4 -1
  37. data/app/lib/actions/katello/activation_key/update.rb +8 -2
  38. data/app/lib/actions/katello/content_view/publish.rb +22 -34
  39. data/app/lib/actions/katello/event_queue/poller_thread.rb +22 -9
  40. data/app/lib/actions/katello/host/update.rb +3 -1
  41. data/app/lib/actions/katello/host/upload_profiles.rb +16 -0
  42. data/app/lib/actions/katello/organization/destroy.rb +0 -11
  43. data/app/lib/actions/katello/product/update.rb +8 -0
  44. data/app/lib/actions/katello/product/update_http_proxy.rb +19 -0
  45. data/app/lib/actions/katello/provider/update.rb +6 -7
  46. data/app/lib/actions/katello/pulp_selector.rb +15 -5
  47. data/app/lib/actions/katello/repository/check_matching_content.rb +3 -1
  48. data/app/lib/actions/katello/repository/clone_contents.rb +19 -6
  49. data/app/lib/actions/katello/repository/clone_to_environment.rb +3 -5
  50. data/app/lib/actions/katello/repository/create.rb +3 -1
  51. data/app/lib/actions/katello/repository/destroy.rb +5 -4
  52. data/app/lib/actions/katello/repository/discover.rb +8 -8
  53. data/app/lib/actions/katello/repository/export.rb +1 -1
  54. data/app/lib/actions/katello/repository/filtered_index_content.rb +10 -5
  55. data/app/lib/actions/katello/repository/finish_upload.rb +8 -0
  56. data/app/lib/actions/katello/repository/import_upload.rb +5 -2
  57. data/app/lib/actions/katello/repository/index_content.rb +3 -2
  58. data/app/lib/actions/katello/repository/metadata_generate.rb +10 -4
  59. data/app/lib/actions/katello/repository/remove_content.rb +11 -3
  60. data/app/lib/actions/katello/repository/sync.rb +14 -7
  61. data/app/lib/actions/katello/repository/update.rb +11 -5
  62. data/app/lib/actions/katello/repository/update_http_proxy_details.rb +17 -0
  63. data/app/lib/actions/katello/repository/upload_files.rb +7 -3
  64. data/app/lib/actions/katello/subscription/update.rb +11 -0
  65. data/app/lib/actions/katello/upstream_subscriptions/remove_entitlement.rb +3 -0
  66. data/app/lib/actions/katello/upstream_subscriptions/remove_entitlements.rb +4 -1
  67. data/app/lib/actions/middleware/backend_services_check.rb +10 -2
  68. data/app/lib/actions/middleware/propagate_output.rb +15 -0
  69. data/app/lib/actions/middleware/pulp3_services_check.rb +9 -0
  70. data/app/lib/actions/pulp/abstract_async_task.rb +8 -1
  71. data/app/lib/actions/pulp/orchestration/repository/copy_all_units.rb +19 -0
  72. data/app/lib/actions/pulp/orchestration/repository/refresh.rb +14 -0
  73. data/app/lib/actions/pulp/orchestration/repository/refresh_if_needed.rb +13 -0
  74. data/app/lib/actions/pulp/orchestration/repository/remove_units.rb +14 -0
  75. data/app/lib/actions/pulp/orchestration/repository/sync.rb +17 -0
  76. data/app/lib/actions/pulp/repository/copy_all_units.rb +1 -1
  77. data/app/lib/actions/pulp/repository/create.rb +0 -1
  78. data/app/lib/actions/pulp/repository/refresh.rb +0 -5
  79. data/app/lib/actions/pulp/repository/remove_units.rb +1 -1
  80. data/app/lib/actions/pulp/repository/sync.rb +8 -14
  81. data/app/lib/actions/pulp3/abstract.rb +2 -1
  82. data/app/lib/actions/pulp3/abstract_async_task.rb +15 -6
  83. data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +55 -0
  84. data/app/lib/actions/pulp3/orchestration/repository/create.rb +1 -2
  85. data/app/lib/actions/pulp3/orchestration/repository/delete.rb +1 -2
  86. data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +17 -2
  87. data/app/lib/actions/pulp3/orchestration/repository/remove_units.rb +18 -0
  88. data/app/lib/actions/pulp3/orchestration/repository/sync.rb +19 -0
  89. data/app/lib/actions/pulp3/orchestration/repository/update.rb +15 -0
  90. data/app/lib/actions/pulp3/repository/copy_content.rb +19 -0
  91. data/app/lib/actions/pulp3/repository/copy_version.rb +19 -0
  92. data/app/lib/actions/pulp3/repository/create_publication.rb +3 -2
  93. data/app/lib/actions/pulp3/repository/presenters/abstract_sync_presenter.rb +42 -0
  94. data/app/lib/actions/pulp3/repository/presenters/content_unit_presenter.rb +57 -0
  95. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +7 -3
  96. data/app/lib/actions/pulp3/repository/remove_units.rb +23 -0
  97. data/app/lib/actions/pulp3/repository/save_distribution_references.rb +6 -4
  98. data/app/lib/actions/pulp3/repository/save_publication.rb +5 -4
  99. data/app/lib/actions/pulp3/repository/save_version.rb +8 -4
  100. data/app/lib/actions/pulp3/repository/sync.rb +55 -0
  101. data/app/lib/actions/pulp3/repository/{delete_publisher.rb → update_distributions.rb} +5 -5
  102. data/app/lib/actions/pulp3/repository/{create_publisher.rb → update_remote.rb} +2 -2
  103. data/app/lib/actions/pulp3/repository/update_repository.rb +16 -0
  104. data/app/lib/katello/errors.rb +9 -0
  105. data/app/lib/katello/resources/candlepin/activation_key.rb +5 -4
  106. data/app/lib/katello/resources/candlepin/product.rb +4 -0
  107. data/app/lib/katello/resources/candlepin/upstream_consumer.rb +11 -0
  108. data/app/lib/katello/resources/candlepin/upstream_pool.rb +6 -2
  109. data/app/lib/katello/resources/cdn.rb +3 -16
  110. data/app/lib/katello/util/cdn_var_substitutor.rb +0 -3
  111. data/app/lib/katello/util/http_proxy.rb +9 -9
  112. data/app/lib/katello/validators/hostgroup_kickstart_repository_validator.rb +1 -1
  113. data/app/models/katello/activation_key.rb +14 -0
  114. data/app/models/katello/activation_key_purpose_addon.rb +6 -0
  115. data/app/models/katello/ansible_collection.rb +32 -0
  116. data/app/models/katello/candlepin/repository_mapper.rb +1 -1
  117. data/app/models/katello/concerns/host_managed_extensions.rb +3 -0
  118. data/app/models/katello/concerns/http_proxy_extensions.rb +60 -0
  119. data/app/models/katello/concerns/location_extensions.rb +8 -0
  120. data/app/models/katello/concerns/organization_extensions.rb +9 -0
  121. data/app/models/katello/concerns/pulp_database_unit.rb +56 -81
  122. data/app/models/katello/concerns/setting_extensions.rb +14 -0
  123. data/app/models/katello/concerns/smart_proxy_extensions.rb +27 -11
  124. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +8 -1
  125. data/app/models/katello/content_view.rb +4 -0
  126. data/app/models/katello/content_view_filter.rb +4 -8
  127. data/app/models/katello/docker_tag.rb +11 -10
  128. data/app/models/katello/erratum.rb +22 -0
  129. data/app/models/katello/event.rb +2 -0
  130. data/app/models/katello/events/auto_publish_composite_view.rb +41 -0
  131. data/app/models/katello/glue/pulp/repo.rb +0 -15
  132. data/app/models/katello/host/content_facet.rb +35 -4
  133. data/app/models/katello/host/subscription_facet.rb +14 -16
  134. data/app/models/katello/host_installed_deb.rb +7 -0
  135. data/app/models/katello/installed_deb.rb +10 -0
  136. data/app/models/katello/ping.rb +45 -10
  137. data/app/models/katello/product_content.rb +1 -1
  138. data/app/models/katello/purpose_addon.rb +11 -0
  139. data/app/models/katello/repository.rb +52 -41
  140. data/app/models/katello/repository_ansible_collection.rb +6 -0
  141. data/app/models/katello/repository_content_view_filter.rb +7 -0
  142. data/app/models/katello/rhsm_fact_parser.rb +11 -1
  143. data/app/models/katello/root_repository.rb +46 -4
  144. data/app/models/katello/srpm.rb +4 -0
  145. data/app/models/katello/subscription_facet_purpose_addon.rb +6 -0
  146. data/app/models/katello/yum_metadata_file.rb +3 -3
  147. data/app/models/setting/content.rb +32 -7
  148. data/app/overrides/add_about_page.rb +0 -7
  149. data/app/services/cert/certs.rb +1 -1
  150. data/app/services/katello/candlepin/consumer.rb +4 -0
  151. data/app/services/katello/event_queue.rb +33 -3
  152. data/app/services/katello/pulp/content_counts_calculator.rb +6 -0
  153. data/app/services/katello/pulp/docker_manifest.rb +1 -2
  154. data/app/services/katello/pulp/docker_manifest_list.rb +0 -1
  155. data/app/services/katello/pulp/file_unit.rb +1 -1
  156. data/app/services/katello/pulp/pulp_content_unit.rb +43 -0
  157. data/app/services/katello/pulp/repository.rb +32 -5
  158. data/app/services/katello/pulp/repository/file.rb +6 -1
  159. data/app/services/katello/pulp/repository/yum.rb +6 -6
  160. data/app/services/katello/pulp/rpm.rb +1 -1
  161. data/app/services/katello/pulp/srpm.rb +1 -1
  162. data/app/services/katello/pulp3/ansible_collection.rb +31 -0
  163. data/app/services/katello/pulp3/docker_blob.rb +17 -0
  164. data/app/services/katello/pulp3/docker_manifest.rb +36 -0
  165. data/app/services/katello/pulp3/docker_manifest_list.rb +30 -0
  166. data/app/services/katello/pulp3/docker_tag.rb +28 -0
  167. data/app/services/katello/pulp3/file_unit.rb +25 -0
  168. data/app/services/katello/pulp3/pulp_content_unit.rb +75 -0
  169. data/app/services/katello/pulp3/repository.rb +160 -47
  170. data/app/services/katello/pulp3/repository/ansible_collection.rb +49 -0
  171. data/app/services/katello/pulp3/repository/docker.rb +55 -0
  172. data/app/services/katello/pulp3/repository/file.rb +35 -25
  173. data/app/services/katello/repository_type.rb +15 -5
  174. data/app/services/katello/repository_type_manager.rb +32 -1
  175. data/app/views/dashboard/_subscription_widget.html.erb +7 -7
  176. data/app/views/foreman/smart_proxies/_content_tab.html.erb +5 -1
  177. data/app/views/katello/api/v2/activation_keys/base.json.rabl +5 -1
  178. data/app/views/katello/api/v2/ansible_collections/base.json.rabl +7 -0
  179. data/app/views/katello/api/v2/ansible_collections/index.json.rabl +7 -0
  180. data/app/views/katello/api/v2/ansible_collections/show.json.rabl +3 -0
  181. data/app/views/katello/api/v2/host_debs/base.json.rabl +4 -0
  182. data/app/views/katello/api/v2/host_debs/index.json.rabl +7 -0
  183. data/app/views/katello/api/v2/ping/show.json.rabl +2 -1
  184. data/app/views/katello/api/v2/repositories/base.json.rabl +3 -2
  185. data/app/views/katello/api/v2/repositories/show.json.rabl +8 -1
  186. data/app/views/katello/api/v2/srpms/index.json.rabl +7 -0
  187. data/app/views/katello/api/v2/srpms/show.json.rabl +5 -0
  188. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +5 -1
  189. data/config/katello.yaml.example +1 -0
  190. data/config/routes/api/rhsm.rb +1 -0
  191. data/config/routes/api/v2.rb +16 -0
  192. data/config/routes/overrides.rb +4 -0
  193. data/db/migrate/20180502155123_add_installed_deb.rb +23 -0
  194. data/db/migrate/20190513162209_drop_repository_reference_publisher_href.rb +5 -0
  195. data/db/migrate/20190605014649_add_purpose_addons.rb +29 -0
  196. data/db/migrate/20190617142328_create_katello_ansible_collections.rb +25 -0
  197. data/db/migrate/20190618034438_add_ansible_collection_whitelist_to_katello_root_repositories.rb +5 -0
  198. data/db/migrate/20190619192151_add_activation_key_system_purpose_attributes.rb +14 -0
  199. data/db/migrate/20190701174401_add_http_proxy_policy_to_repository_root.rb +12 -0
  200. data/db/migrate/20190701192616_add_http_proxy_to_repository_root.rb +6 -0
  201. data/db/migrate/20190702182118_add_metadata_process_after_to_katello_event.rb +6 -0
  202. data/db/migrate/20190708195809_remove_all_manifest_downloaded.rb +11 -0
  203. data/db/migrate/20190723171639_update_content_view_filters_repositories_join_table.rb +11 -0
  204. data/db/seeds.d/115-http_proxy.rb +25 -0
  205. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -0
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details-info.controller.js +15 -0
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +69 -4
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +39 -0
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -0
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -0
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +2 -1
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +1 -7
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +26 -0
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-actions.controller.js +14 -0
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-installed.controller.js +77 -0
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs.controller.js +63 -0
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +18 -21
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-actions.html +62 -0
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-installed.html +52 -0
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs.html +9 -0
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -1
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +21 -1
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -1
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +1 -2
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +1 -1
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +4 -4
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-debs.factory.js +20 -0
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host.factory.js +9 -0
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/http-proxies/http-proxies.module.js +14 -0
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/http-proxies/http-proxy.factory.js +21 -0
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/product-bulk-action.factory.js +2 -1
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-http-proxy-modal.controller.js +77 -0
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-http-proxy-modal.html +57 -0
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +25 -3
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +13 -1
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +75 -29
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/http-proxy-service.js +53 -0
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +18 -2
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +42 -16
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +7 -0
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +16 -0
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +6 -0
  243. data/lib/katello.rb +0 -1
  244. data/lib/katello/engine.rb +2 -0
  245. data/lib/katello/permission_creator.rb +7 -2
  246. data/lib/katello/permissions/host_permissions.rb +3 -0
  247. data/lib/katello/plugin.rb +3 -2
  248. data/lib/katello/repository_types/ansible_collection.rb +8 -0
  249. data/lib/katello/repository_types/deb.rb +2 -1
  250. data/lib/katello/repository_types/docker.rb +23 -4
  251. data/lib/katello/repository_types/file.rb +7 -1
  252. data/lib/katello/repository_types/ostree.rb +2 -1
  253. data/lib/katello/repository_types/puppet.rb +2 -1
  254. data/lib/katello/repository_types/yum.rb +3 -2
  255. data/lib/katello/tasks/clean_published_repo_directories.rake +1 -1
  256. data/lib/katello/tasks/delete_orphaned_content.rake +16 -5
  257. data/lib/katello/tasks/jenkins.rake +2 -0
  258. data/lib/katello/tasks/update_content_default_http_proxy.rake +69 -0
  259. data/lib/katello/version.rb +1 -1
  260. data/package.json +10 -22
  261. data/webpack/{move_to_foreman/__mocks__ → __mocks__/foremanJS}/foreman_toast_notifications.js +0 -0
  262. data/webpack/__mocks__/foremanReact/common/helpers.js +3 -6
  263. data/webpack/__mocks__/foremanReact/common/keyCodes.js +8 -0
  264. data/webpack/__mocks__/foremanReact/common/urlHelpers.js +7 -0
  265. data/webpack/__mocks__/foremanReact/components/Settings/SettingsActions.js +4 -0
  266. data/webpack/__mocks__/foremanReact/components/Settings/SettingsConstants.js +2 -0
  267. data/webpack/__mocks__/foremanReact/components/common/Fill/GlobalFill.js +3 -0
  268. data/webpack/__mocks__/foremanReact/components/common/ModalProgressBar.js +8 -0
  269. data/webpack/components/SelectOrg/SetOrganization.js +11 -19
  270. data/webpack/components/WithOrganization/__snapshots__/withOrganization.test.js.snap +1 -3
  271. data/webpack/components/WithOrganization/withOrganization.js +2 -2
  272. data/webpack/components/WithOrganization/withOrganization.test.js +2 -2
  273. data/webpack/components/extensions/about/SystemStatuses.js +55 -0
  274. data/webpack/components/extensions/about/SystemStatusesActions.js +16 -0
  275. data/webpack/components/extensions/about/SystemStatusesConsts.js +3 -0
  276. data/webpack/components/extensions/about/SystemStatusesReducer.js +26 -0
  277. data/webpack/components/extensions/about/SystemStatusesSelectors.js +3 -0
  278. data/webpack/components/extensions/about/__tests__/SystemStatuses.fixtures.js +20 -0
  279. data/webpack/components/extensions/about/__tests__/SystemStatuses.test.js +14 -0
  280. data/webpack/components/extensions/about/__tests__/SystemStatusesReducer.test.js +32 -0
  281. data/webpack/components/extensions/about/__tests__/__snapshots__/SystemStatuses.test.js.snap +156 -0
  282. data/webpack/components/extensions/about/__tests__/__snapshots__/SystemStatusesReducer.test.js.snap +47 -0
  283. data/webpack/components/extensions/about/index.js +19 -0
  284. data/webpack/components/extensions/reducers.js +6 -0
  285. data/webpack/containers/Application/config.js +4 -10
  286. data/webpack/fills_index.js +10 -0
  287. data/webpack/move_to_foreman/common/helpers.js +0 -20
  288. data/webpack/move_to_foreman/components/common/table/components/TableSelectionCell.js +1 -0
  289. data/webpack/move_to_foreman/components/common/table/formatters/EntitlementsInlineEditFormatter.js +3 -3
  290. data/webpack/move_to_pf/LoadingState/LoadingState.js +1 -0
  291. data/webpack/move_to_pf/OptionTooltip/OptionTooltip.scss +2 -1
  292. data/webpack/move_to_pf/TypeAhead/TypeAhead.js +3 -4
  293. data/webpack/redux/actions/RedHatRepositories/helpers.js +6 -1
  294. data/webpack/redux/reducers/index.js +2 -0
  295. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailInfo.js +1 -0
  296. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetails.js +1 -0
  297. data/webpack/scenes/ModuleStreams/Details/Profiles/TableSchema.js +1 -0
  298. data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/ProfileRpmsCellFormatter.test.js +0 -2
  299. data/webpack/scenes/ModuleStreams/Details/Repositories/TableSchema.js +3 -2
  300. data/webpack/scenes/ModuleStreams/Details/index.js +1 -1
  301. data/webpack/scenes/ModuleStreams/ModuleStreamsPage.js +2 -0
  302. data/webpack/scenes/ModuleStreams/ModuleStreamsTable.js +2 -0
  303. data/webpack/scenes/ModuleStreams/ModuleStreamsTableSchema.js +3 -2
  304. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamPage.test.js +0 -1
  305. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsTable.test.js +0 -1
  306. data/webpack/scenes/ModuleStreams/index.js +1 -1
  307. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +2 -3
  308. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -0
  309. data/webpack/scenes/RedHatRepositories/components/RecommendedRepositorySetsToggler.js +1 -0
  310. data/webpack/scenes/RedHatRepositories/components/RecommendedRepositorySetsToggler.scss +1 -1
  311. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepositories.js +1 -0
  312. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +3 -4
  313. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/__test__/RepositorySetRepository.test.js +0 -2
  314. data/webpack/scenes/RedHatRepositories/components/SearchBar.js +1 -0
  315. data/webpack/scenes/RedHatRepositories/helpers.js +1 -1
  316. data/webpack/scenes/RedHatRepositories/index.js +3 -2
  317. data/webpack/scenes/RedHatRepositories/index.scss +1 -1
  318. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailAssociations.js +3 -3
  319. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProductContent.js +1 -0
  320. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProducts.js +1 -0
  321. data/webpack/scenes/Subscriptions/Details/SubscriptionDetails.js +1 -2
  322. data/webpack/scenes/Subscriptions/Details/__tests__/SubscriptionDetails.test.js +0 -1
  323. data/webpack/scenes/Subscriptions/Details/index.js +1 -1
  324. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +1 -0
  325. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +1 -2
  326. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +1 -1
  327. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +3 -2
  328. data/webpack/scenes/Subscriptions/SubscriptionsPage.scss +1 -2
  329. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +9 -9
  330. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsTableSchema.js +2 -2
  331. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsPage.test.js +0 -1
  332. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/index.js +1 -1
  333. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +1 -2
  334. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +2 -1
  335. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +2 -1
  336. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionTypeFormatter.js +3 -2
  337. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTable.js +1 -0
  338. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +3 -2
  339. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +1 -1
  340. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/DeleteDialog.js +1 -1
  341. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/InputsErrorsDialog.js +1 -0
  342. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/UnsavedChangesDialog.js +1 -0
  343. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Dialogs/UpdateDialog.js +1 -1
  344. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Table.js +1 -0
  345. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +1 -0
  346. data/webpack/scenes/Subscriptions/index.js +1 -1
  347. data/webpack/scenes/Tasks/helpers.js +5 -6
  348. metadata +161 -20
  349. data/app/lib/actions/katello/repository/clear.rb +0 -11
  350. data/app/views/overrides/about/_system_status.html.erb +0 -19
  351. data/webpack/move_to_foreman/Settings/SettingsActions.js +0 -28
  352. data/webpack/move_to_foreman/Settings/SettingsConstants.js +0 -3
  353. data/webpack/move_to_foreman/Settings/__tests__/SettingsActions.test.js +0 -41
  354. data/webpack/move_to_foreman/Settings/__tests__/settings.fixtures.js +0 -34
  355. data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.js +0 -48
  356. data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.scss +0 -15
  357. data/webpack/move_to_foreman/components/common/ModalProgressBar/__tests__/ModalProgressBar.test.js +0 -22
  358. data/webpack/move_to_foreman/components/common/ModalProgressBar/__tests__/__snapshots__/ModalProgressBar.test.js.snap +0 -60
  359. data/webpack/move_to_foreman/components/common/ModalProgressBar/index.js +0 -4
  360. data/webpack/move_to_foreman/foreman_toast_notifications.js +0 -22
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @ngdoc service
3
+ * @name Bastion.repository.service:httpProxyPolicy
4
+ *
5
+ * @requires translate
6
+ * @requires globalContentProxy
7
+ *
8
+ * @description
9
+ * Provides HTTP Proxy policy and name display
10
+ */
11
+ angular.module('Bastion.repositories').service('HttpProxyPolicy',
12
+ ['translate', 'globalContentProxy', function (translate, globalContentProxy) {
13
+
14
+ this.globalContentProxyName = "";
15
+
16
+ if (globalContentProxy) {
17
+ this.globalContentProxyName = translate("Global Default") + " (" + globalContentProxy + ")";
18
+ } else {
19
+ this.globalContentProxyName = translate("Global Default (None)");
20
+ }
21
+
22
+ this.policies = [ {name: this.globalContentProxyName, label: 'global_default_http_proxy'},
23
+ {name: translate("No HTTP Proxy"), label: 'none'},
24
+ {name: translate("Use specific HTTP Proxy"), label: 'use_selected_http_proxy'}];
25
+
26
+ this.displayHttpProxyPolicyName = function (policy) {
27
+ var policies = {
28
+ 'global_default_http_proxy': this.globalContentProxyName,
29
+ 'none': translate("No HTTP Proxy"),
30
+ 'use_selected_http_proxy': translate("Use specific HTTP Proxy")
31
+ };
32
+ return policies[policy];
33
+ };
34
+
35
+ this.displayHttpProxyName = function (proxies, proxyId) {
36
+ var findProxy = function(proxy) {
37
+ return proxy.id === this.id;
38
+ };
39
+
40
+ var foundProxy = proxies.find(findProxy, { id: proxyId });
41
+
42
+ if (proxies.length === 0) {
43
+ return translate("No HTTP Proxies found");
44
+ }
45
+
46
+ if (foundProxy) {
47
+ return foundProxy.name;
48
+ }
49
+
50
+ return "";
51
+ };
52
+ }]
53
+ );
@@ -17,13 +17,14 @@
17
17
  * @requires Architecture
18
18
  * @requires RepositoryTypesService
19
19
  * @requires YumContentUnits
20
+ * #requires HttpProxyPolicy
20
21
  *
21
22
  * @description
22
23
  * Controls the creation of an empty Repository object for use by sub-controllers.
23
24
  */
24
25
  angular.module('Bastion.repositories').controller('NewRepositoryController',
25
- ['$scope', 'Repository', 'Product', 'ContentCredential', 'FormUtils', 'translate', 'Notification', 'ApiErrorHandler', 'BastionConfig', 'Checksum', 'YumContentUnits', 'DownloadPolicy', 'OstreeUpstreamSyncPolicy', 'Architecture', 'RepositoryTypesService',
26
- function ($scope, Repository, Product, ContentCredential, FormUtils, translate, Notification, ApiErrorHandler, BastionConfig, Checksum, YumContentUnits, DownloadPolicy, OstreeUpstreamSyncPolicy, Architecture, RepositoryTypesService) {
26
+ ['$scope', 'Repository', 'Product', 'ContentCredential', 'FormUtils', 'translate', 'Notification', 'ApiErrorHandler', 'BastionConfig', 'Checksum', 'YumContentUnits', 'DownloadPolicy', 'OstreeUpstreamSyncPolicy', 'Architecture', 'RepositoryTypesService', 'HttpProxy', 'HttpProxyPolicy',
27
+ function ($scope, Repository, Product, ContentCredential, FormUtils, translate, Notification, ApiErrorHandler, BastionConfig, Checksum, YumContentUnits, DownloadPolicy, OstreeUpstreamSyncPolicy, Architecture, RepositoryTypesService, HttpProxy, HttpProxyPolicy) {
27
28
 
28
29
  function success() {
29
30
  Notification.setSuccessMessage(translate('Repository %s successfully created.').replace('%s', $scope.repository.name));
@@ -118,5 +119,20 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
118
119
  repository.$save(success, error);
119
120
  };
120
121
 
122
+ $scope.repository['http_proxy_policy'] = HttpProxyPolicy.policies[0].label;
123
+ $scope.policies = HttpProxyPolicy.policies;
124
+ $scope.proxies = [];
125
+
126
+ $scope.displayHttpProxyPolicyName = function (policy) {
127
+ return HttpProxyPolicy.displayHttpProxyPolicyName(policy);
128
+ };
129
+
130
+ $scope.displayHttpProxyName = function (proxyId) {
131
+ return HttpProxyPolicy.displayHttpProxyName($scope.proxies, proxyId);
132
+ };
133
+
134
+ HttpProxy.queryUnpaged(function (proxies) {
135
+ $scope.proxies = proxies.results;
136
+ });
121
137
  }]
122
138
  );
@@ -25,9 +25,9 @@
25
25
 
26
26
  <div bst-form-group label="{{ 'Description' | translate }}">
27
27
  <textarea id="description"
28
- name="description"
29
- ng-model="repository.description"
30
- type="text"/>
28
+ name="description"
29
+ ng-model="repository.description"
30
+ type="text"/>
31
31
  </div>
32
32
 
33
33
  <div bst-form-group label="{{ 'Type' | translate }}">
@@ -60,8 +60,22 @@
60
60
  <p class="help-block" ng-show="repository.content_type === 'docker'" translate>
61
61
  URL of the registry you want to sync. Example: https://registry-1.docker.io/
62
62
  </p>
63
+ <p class="help-block" ng-show="repository.content_type === 'ansible_collection'" translate>
64
+ URL of the ansible content sharing hub you want to sync. Example: https://galaxy.ansible.com
65
+ </p>
66
+
67
+ </div>
63
68
 
69
+ <div ng-show="repository.content_type === 'ansible_collection'" bst-form-group label="{{ 'Whitelist' | translate }}">
70
+ <textarea id="collection_whitelist"
71
+ name="collection_whitelists"
72
+ ng-model="repository.ansible_collection_whitelist"
73
+ type="text"/>
74
+ <p class="help-block" translate>
75
+ Name / Comma-separated names of ansible collection(s) you want to sync from the galaxy. ex: newswangerd.collection_demo, devoperate.base
76
+ </p>
64
77
  </div>
78
+
65
79
  <div ng-show="repository.content_type === 'deb'" bst-form-group label="{{ 'Releases' | translate }}">
66
80
  <input id="deb_releases"
67
81
  name="deb_releases"
@@ -166,7 +180,6 @@
166
180
  </p>
167
181
  </div>
168
182
 
169
-
170
183
  <div bst-form-group label="{{ 'Download Policy' | translate }}" ng-if="repository.content_type === 'yum'">
171
184
  <select id="download_policy"
172
185
  name="download_policy"
@@ -175,6 +188,7 @@
175
188
  </select>
176
189
  <p class="help-block" translate>
177
190
  For On Demand synchronization, only the metadata is downloaded during sync and packages are fetched and stored on the filesystem when clients request them.
191
+ On Demand is not recommended for custom repositories unless the upstream repository maintains older versions of packages within the repository.
178
192
  For Background synchronization, a background task will download all packages after the initial sync.
179
193
  The Immediate option will download all metadata and packages immediately during the sync.
180
194
  </p>
@@ -191,16 +205,28 @@
191
205
  </p>
192
206
  </div>
193
207
 
194
- <div class="checkbox">
195
- <label>
196
- <input id="ignore_global_proxy" name="ignore_global_proxy" ng-model="repository.ignore_global_proxy" type="checkbox"/>
197
- <span translate>Ignore Global Http Proxy</span>
198
- </label>
199
-
200
- <p class="help-block" translate>
201
- Selecting this option will result in the globally configured http proxy from not being used.
202
- </p>
208
+ <div bst-form-group label="{{ 'Http Proxy Policy' | translate }}">
209
+ <select required
210
+ id="http_proxy_policy"
211
+ name="http_proxy_policy"
212
+ ng-model="repository.http_proxy_policy"
213
+ ng-options="type.label as type.name for type in policies">
214
+ </select>
203
215
  </div>
216
+ <span ng-show="repository.http_proxy_policy === 'use_selected_http_proxy'">
217
+ <div bst-form-group label="{{ 'Http Proxy' | translate }}">
218
+ <span translate ng-show="proxies.length == 0">
219
+ No HTTP Proxies found
220
+ </span>
221
+ <select
222
+ id="http_proxy"
223
+ name="http_proxy"
224
+ ng-model="repository.http_proxy_id"
225
+ ng-options="proxy.id as proxy.name for proxy in proxies"
226
+ ng-show="proxies.length > 0">
227
+ </select>
228
+ </div>
229
+ </span>
204
230
  </div>
205
231
 
206
232
  <div ng-show="repository.content_type === 'yum' || repository.content_type === 'puppet' || repository.content_type === 'deb' || repository.content_type === 'file'">
@@ -233,7 +259,7 @@
233
259
  </select>
234
260
  </div>
235
261
 
236
- <div bst-form-group label="{{ 'SSL CA Cert' | translate }}" ng-show="repository.content_type === 'yum'">
262
+ <div bst-form-group label="{{ 'SSL CA Cert' | translate }}">
237
263
  <select id="ssl_ca_cert_id"
238
264
  name="ssl_ca_cert_id"
239
265
  ng-model="repository.ssl_ca_cert_id"
@@ -242,7 +268,7 @@
242
268
  </select>
243
269
  </div>
244
270
 
245
- <div bst-form-group label="{{ 'SSL Client Cert' | translate }}" ng-show="repository.content_type === 'yum'">
271
+ <div bst-form-group label="{{ 'SSL Client Cert' | translate }}">
246
272
  <select id="ssl_client_cert_id"
247
273
  name="ssl_client_cert_id"
248
274
  ng-model="repository.ssl_client_cert_id"
@@ -251,7 +277,7 @@
251
277
  </select>
252
278
  </div>
253
279
 
254
- <div bst-form-group label="{{ 'SSL Client Key' | translate }}" ng-show="repository.content_type === 'yum'">
280
+ <div bst-form-group label="{{ 'SSL Client Key' | translate }}">
255
281
  <select id="ssl_client_key_id"
256
282
  name="ssl_client_key_id"
257
283
  ng-model="repository.ssl_client_key_id"
@@ -181,6 +181,13 @@
181
181
  </div>
182
182
  </span>
183
183
 
184
+ <span ng-show="repository.content_type == 'ansible_collection'">
185
+ <div>
186
+ <a translate ui-sref="product.repository.manage-content.ansible-collections({productId: product.id, repositoryId: repository.id})">
187
+ {{ repository.content_counts.ansible_collection || 0 }}
188
+ </a>
189
+ </div>
190
+ </span>
184
191
  </td>
185
192
  </tr>
186
193
  </tbody>
@@ -125,6 +125,22 @@ angular.module('Bastion.products').controller('ProductsController',
125
125
  });
126
126
  };
127
127
 
128
+ $scope.openHttpProxyModal = function () {
129
+ nutupane.invalidate();
130
+ $uibModal.open({
131
+ templateUrl: 'products/bulk/views/products-bulk-http-proxy-modal.html',
132
+ controller: 'ProductsBulkHttpProxyModalController',
133
+ size: 'lg',
134
+ resolve: {
135
+ bulkParams: function () {
136
+ return getBulkParams();
137
+ }
138
+ }
139
+ }).closed.then(function () {
140
+ nutupane.refresh();
141
+ });
142
+ };
143
+
128
144
  $scope.openAdvancedSyncModal = function () {
129
145
  nutupane.invalidate();
130
146
  $uibModal.open({
@@ -42,6 +42,12 @@
42
42
  </a>
43
43
  </li>
44
44
 
45
+ <li role="menuitem" ng-show="permitted('edit_products')" ng-class="{disabled: table.numSelected === 0}">
46
+ <a ng-click="openHttpProxyModal()" disable-link="table.numSelected === 0" translate>
47
+ Manage Http Proxy
48
+ </a>
49
+ </li>
50
+
45
51
  <li class="divider"></li>
46
52
 
47
53
  <li role="menuitem" ng-show="permitted('destroy_products')" ng-class="{disabled: table.numSelected === 0}">
data/lib/katello.rb CHANGED
@@ -11,7 +11,6 @@ require "anemone"
11
11
  require "securerandom"
12
12
 
13
13
  require "runcible"
14
- require 'zest'
15
14
  require "deface"
16
15
  require 'qpid_messaging'
17
16
 
@@ -146,6 +146,7 @@ module Katello
146
146
  ::Organization.send :include, Katello::Concerns::OrganizationExtensions
147
147
  ::User.send :include, Katello::Concerns::UserExtensions
148
148
  ::Setting.send :include, Katello::Concerns::SettingExtensions
149
+ ::HttpProxy.send :include, Katello::Concerns::HttpProxyExtensions
149
150
  ForemanTasks::RecurringLogic.send :include, Katello::Concerns::RecurringLogicExtensions
150
151
 
151
152
  #Controller extensions
@@ -195,6 +196,7 @@ module Katello
195
196
 
196
197
  Katello::EventQueue.register_event(Katello::Events::ImportHostApplicability::EVENT_TYPE, Katello::Events::ImportHostApplicability)
197
198
  Katello::EventQueue.register_event(Katello::Events::ImportPool::EVENT_TYPE, Katello::Events::ImportPool)
199
+ Katello::EventQueue.register_event(Katello::Events::AutoPublishCompositeView::EVENT_TYPE, Katello::Events::AutoPublishCompositeView)
198
200
 
199
201
  ::HostsController.class_eval do
200
202
  helper Katello::Concerns::HostsAndHostgroupsHelperExtensions
@@ -1,5 +1,5 @@
1
1
  module Katello
2
- class PermissionCreator
2
+ class PermissionCreator # rubocop:disable Metrics/ClassLength
3
3
  def initialize(plugin)
4
4
  @plugin = plugin
5
5
  end
@@ -78,6 +78,7 @@ module Katello
78
78
  'katello/api/v2/errata' => [:index, :show, :auto_complete_search, :compare, :available_errata],
79
79
  'katello/api/v2/puppet_modules' => [:index, :show, :auto_complete_search, :compare],
80
80
  'katello/api/v2/module_streams' => [:index, :show, :auto_complete_search, :compare],
81
+ 'katello/api/v2/ansible_collections' => [:index, :show, :auto_complete_search, :compare],
81
82
  'katello/content_views' => [:auto_complete, :auto_complete_search],
82
83
  'katello/errata' => [:short_details, :auto_complete],
83
84
  'katello/packages' => [:details, :auto_complete],
@@ -93,6 +94,7 @@ module Katello
93
94
  :errata_items,
94
95
  :puppet_modules_items,
95
96
  :module_streams,
97
+ :ansible_collections,
96
98
  :view_packages,
97
99
  :view_puppet_modules,
98
100
  :repo_packages,
@@ -251,6 +253,7 @@ module Katello
251
253
  'katello/api/v2/products' => [:index, :show, :auto_complete_search],
252
254
  'katello/api/v2/repositories' => [:index, :show, :repository_types, :auto_complete_search, :cancel],
253
255
  'katello/api/v2/packages' => [:index, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch, :compare],
256
+ 'katello/api/v2/srpms' => [:index, :show, :auto_complete_search, :compare],
254
257
  'katello/api/v2/debs' => [:index, :show, :auto_complete_search, :compare],
255
258
  'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
256
259
  'katello/api/v2/docker_manifests' => [:index, :show, :auto_complete_search, :compare],
@@ -261,6 +264,7 @@ module Katello
261
264
  'katello/api/v2/errata' => [:index, :show, :auto_complete_search, :compare],
262
265
  'katello/api/v2/puppet_modules' => [:index, :show, :auto_complete_search, :compare],
263
266
  'katello/api/v2/module_streams' => [:index, :show, :auto_complete_search, :compare, :auto_complete_name],
267
+ 'katello/api/v2/ansible_collections' => [:index, :show, :auto_complete_search, :compare],
264
268
  'katello/errata' => [:short_details, :auto_complete],
265
269
  'katello/packages' => [:details, :auto_complete],
266
270
  'katello/puppet_modules' => [:show],
@@ -276,6 +280,7 @@ module Katello
276
280
  :errata_items,
277
281
  :puppet_modules_items,
278
282
  :module_streams,
283
+ :ansible_collections,
279
284
  :repo_packages,
280
285
  :repo_errata,
281
286
  :repo_puppet_modules,
@@ -295,7 +300,7 @@ module Katello
295
300
  {
296
301
  'katello/api/v2/products' => [:update],
297
302
  'katello/api/v2/repositories' => [:update, :remove_content, :import_uploads, :upload_content, :republish],
298
- 'katello/api/v2/products_bulk_actions' => [:update_sync_plans],
303
+ 'katello/api/v2/products_bulk_actions' => [:update_sync_plans, :update_http_proxy],
299
304
  'katello/api/v2/content_uploads' => [:create, :update, :destroy],
300
305
  'katello/api/v2/organizations' => [:repo_discover, :cancel_repo_discover]
301
306
  },
@@ -4,6 +4,7 @@ Foreman::AccessControl.permission(:edit_hosts).actions.concat [
4
4
  'api/v2/hosts/host_collections',
5
5
  'katello/api/v2/host_errata/apply',
6
6
  'katello/api/v2/host_errata/applicability',
7
+ 'katello/api/v2/host_debs/auto_complete_search',
7
8
  'katello/api/v2/host_packages/install',
8
9
  'katello/api/v2/host_packages/upgrade',
9
10
  'katello/api/v2/host_packages/upgrade_all',
@@ -27,6 +28,7 @@ Foreman::AccessControl.permission(:edit_hosts).actions.concat [
27
28
  'katello/api/v2/hosts_bulk_actions/release_version',
28
29
  'katello/api/rhsm/candlepin_dynflow_proxy/upload_package_profile',
29
30
  'katello/api/rhsm/candlepin_dynflow_proxy/upload_profiles',
31
+ 'katello/api/rhsm/candlepin_dynflow_proxy/deb_package_profile',
30
32
  'katello/api/rhsm/candlepin_proxies/regenerate_identity_certificates',
31
33
  'katello/api/rhsm/candlepin_proxies/hypervisors_update',
32
34
  'katello/api/rhsm/candlepin_proxies/async_hypervisors_update',
@@ -49,6 +51,7 @@ Foreman::AccessControl.permission(:view_hosts).actions.concat [
49
51
  'katello/api/v2/hosts_bulk_actions/installable_errata',
50
52
  'katello/api/v2/hosts_bulk_actions/available_incremental_updates',
51
53
  'katello/api/v2/hosts_bulk_actions/module_streams',
54
+ 'katello/api/v2/host_debs/index',
52
55
  'katello/api/v2/host_packages/index',
53
56
  'katello/api/v2/host_tracer/index',
54
57
  'katello/remote_execution/new',
@@ -3,7 +3,7 @@ require 'katello/repository_types.rb'
3
3
 
4
4
  # rubocop:disable Metrics/BlockLength
5
5
  Foreman::Plugin.register :katello do
6
- requires_foreman '>= 1.21'
6
+ requires_foreman '>= 1.23'
7
7
 
8
8
  sub_menu :top_menu, :content_menu, :caption => N_('Content'),
9
9
  :icon => 'fa fa-book', :after => :monitor_menu do
@@ -200,6 +200,7 @@ Foreman::Plugin.register :katello do
200
200
 
201
201
  allowed_template_helpers :subscription_manager_configuration_url, :repository_url
202
202
  extend_template_helpers Katello::KatelloUrlsHelper
203
+ register_global_js_file 'fills'
203
204
 
204
205
  search_path_override("Katello") do |resource|
205
206
  "/#{Katello::Util::Model.model_to_controller_path(resource)}/auto_complete_search"
@@ -211,7 +212,7 @@ Foreman::Plugin.register :katello do
211
212
  :content_facet_attributes => [:content_view_id, :lifecycle_environment_id, :content_source_id,
212
213
  :host, :kickstart_repository_id],
213
214
  :subscription_facet_attributes => [:release_version, :autoheal, :purpose_usage, :purpose_role, :service_level, :host,
214
- {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, :hypervisor_guest_uuids => [], :purpose_addons => []]
215
+ {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, :hypervisor_guest_uuids => [], :purpose_addon_ids => []]
215
216
  parameter_filter Hostgroup, :content_view_id, :lifecycle_environment_id, :content_source_id,
216
217
  :kickstart_repository_id
217
218
  parameter_filter Organization, :label, :service_level
@@ -0,0 +1,8 @@
1
+ Katello::RepositoryTypeManager.register(::Katello::Repository::ANSIBLE_COLLECTION_TYPE) do
2
+ allow_creation_by_user true
3
+ pulp3_skip_publication true
4
+ pulp3_service_class Katello::Pulp3::Repository::AnsibleCollection
5
+ pulp3_plugin 'pulp_ansible'
6
+
7
+ content_type Katello::AnsibleCollection, :pulp3_service_class => ::Katello::Pulp3::AnsibleCollection, :user_removable => true
8
+ end
@@ -1,5 +1,6 @@
1
1
  Katello::RepositoryTypeManager.register(::Katello::Repository::DEB_TYPE) do
2
2
  service_class Katello::Pulp::Repository::Deb
3
3
  prevent_unneeded_metadata_publish
4
- content_type Katello::Deb, :pulp2_service_class => ::Katello::Pulp::Deb, :user_removable => true
4
+ default_managed_content_type Katello::Deb
5
+ content_type Katello::Deb, :pulp2_service_class => ::Katello::Pulp::Deb, :removable => true, :uploadable => true
5
6
  end
@@ -1,8 +1,27 @@
1
1
  Katello::RepositoryTypeManager.register(::Katello::Repository::DOCKER_TYPE) do
2
2
  service_class Katello::Pulp::Repository::Docker
3
+ default_managed_content_type Katello::DockerManifest
4
+ pulp3_service_class Katello::Pulp3::Repository::Docker
5
+ pulp3_skip_publication true
6
+ pulp3_plugin 'pulp_docker'
3
7
 
4
- content_type Katello::DockerManifest, :priority => 1, :pulp2_service_class => ::Katello::Pulp::DockerManifest, :user_removable => true
5
- content_type Katello::DockerManifestList, :priority => 2, :pulp2_service_class => ::Katello::Pulp::DockerManifestList
6
- content_type Katello::DockerTag, :priority => 3, :pulp2_service_class => ::Katello::Pulp::DockerTag
7
- content_type Katello::DockerBlob, :priority => 4, :pulp2_service_class => ::Katello::Pulp::DockerBlob, :index => false
8
+ content_type Katello::DockerManifest,
9
+ :priority => 1,
10
+ :pulp2_service_class => ::Katello::Pulp::DockerManifest,
11
+ :pulp3_service_class => ::Katello::Pulp3::DockerManifest,
12
+ :removable => true,
13
+ :uploadable => true
14
+ content_type Katello::DockerManifestList,
15
+ :priority => 2,
16
+ :pulp2_service_class => ::Katello::Pulp::DockerManifestList,
17
+ :pulp3_service_class => ::Katello::Pulp3::DockerManifestList
18
+ content_type Katello::DockerTag,
19
+ :priority => 3,
20
+ :pulp2_service_class => ::Katello::Pulp::DockerTag,
21
+ :pulp3_service_class => ::Katello::Pulp3::DockerTag
22
+ content_type Katello::DockerBlob,
23
+ :priority => 4,
24
+ :pulp2_service_class => ::Katello::Pulp::DockerBlob,
25
+ :pulp3_service_class => ::Katello::Pulp3::DockerBlob,
26
+ :index => false
8
27
  end
@@ -1,8 +1,14 @@
1
1
  Katello::RepositoryTypeManager.register(::Katello::Repository::FILE_TYPE) do
2
2
  allow_creation_by_user true
3
3
  service_class Katello::Pulp::Repository::File
4
+
4
5
  pulp3_service_class Katello::Pulp3::Repository::File
5
6
  pulp3_plugin 'pulp_file'
6
7
 
7
- content_type Katello::FileUnit, :pulp2_service_class => ::Katello::Pulp::FileUnit, :user_removable => true
8
+ content_type Katello::FileUnit,
9
+ :pulp2_service_class => ::Katello::Pulp::FileUnit,
10
+ :pulp3_service_class => ::Katello::Pulp3::FileUnit,
11
+ :removable => true,
12
+ :uploadable => true
13
+ default_managed_content_type Katello::FileUnit
8
14
  end