katello 3.8.1 → 3.9.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 (472) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -7
  3. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +16 -9
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
  5. data/app/controllers/katello/api/v2/api_controller.rb +20 -22
  6. data/app/controllers/katello/api/v2/capsule_content_controller.rb +1 -1
  7. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +5 -1
  8. data/app/controllers/katello/api/v2/content_view_histories_controller.rb +1 -1
  9. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +12 -12
  10. data/app/controllers/katello/api/v2/content_views_controller.rb +15 -1
  11. data/app/controllers/katello/api/v2/host_errata_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -4
  13. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +12 -0
  14. data/app/controllers/katello/api/v2/module_streams_controller.rb +49 -0
  15. data/app/controllers/katello/api/v2/organizations_controller.rb +3 -1
  16. data/app/controllers/katello/api/v2/package_groups_controller.rb +1 -1
  17. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +5 -4
  18. data/app/controllers/katello/api/v2/products_controller.rb +1 -1
  19. data/app/controllers/katello/api/v2/puppet_modules_controller.rb +5 -0
  20. data/app/controllers/katello/api/v2/repositories_controller.rb +80 -84
  21. data/app/controllers/katello/api/v2/repository_sets_controller.rb +18 -7
  22. data/app/controllers/katello/api/v2/subscriptions_controller.rb +2 -6
  23. data/app/controllers/katello/api/v2/sync_plans_controller.rb +13 -24
  24. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +12 -5
  25. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +2 -5
  26. data/app/controllers/katello/react_controller.rb +2 -0
  27. data/app/controllers/katello/remote_execution_controller.rb +16 -5
  28. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +0 -2
  29. data/app/lib/actions/candlepin/import_pool_handler.rb +40 -15
  30. data/app/lib/actions/katello/capsule_content/create_repos.rb +1 -0
  31. data/app/lib/actions/katello/content_view/publish.rb +21 -2
  32. data/app/lib/actions/katello/content_view_version/incremental_update.rb +1 -1
  33. data/app/lib/actions/katello/environment/destroy.rb +2 -3
  34. data/app/lib/actions/katello/environment/publish_repositories.rb +1 -1
  35. data/app/lib/actions/katello/event_queue/monitor.rb +9 -15
  36. data/app/lib/actions/katello/event_queue/poller_thread.rb +24 -1
  37. data/app/lib/actions/katello/event_queue/suspended_action.rb +2 -2
  38. data/app/lib/actions/katello/host/hypervisors_update.rb +82 -22
  39. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -1
  40. data/app/lib/actions/katello/product/content_create.rb +30 -38
  41. data/app/lib/actions/katello/product/content_destroy.rb +11 -12
  42. data/app/lib/actions/katello/product/create.rb +0 -1
  43. data/app/lib/actions/katello/product/update.rb +0 -2
  44. data/app/lib/actions/katello/repository/clear.rb +2 -0
  45. data/app/lib/actions/katello/repository/clone_to_environment.rb +0 -2
  46. data/app/lib/actions/katello/repository/clone_to_version.rb +15 -3
  47. data/app/lib/actions/katello/repository/clone_yum_content.rb +21 -2
  48. data/app/lib/actions/katello/repository/clone_yum_metadata.rb +1 -1
  49. data/app/lib/actions/katello/repository/correct_checksum.rb +5 -5
  50. data/app/lib/actions/katello/repository/create.rb +7 -7
  51. data/app/lib/actions/katello/repository/create_root.rb +22 -0
  52. data/app/lib/actions/katello/repository/destroy.rb +11 -6
  53. data/app/lib/actions/katello/repository/discover.rb +5 -3
  54. data/app/lib/actions/katello/repository/export.rb +1 -1
  55. data/app/lib/actions/katello/repository/fetch_pxe_files.rb +13 -27
  56. data/app/lib/actions/katello/repository/index_module_streams.rb +16 -0
  57. data/app/lib/actions/katello/repository/metadata_generate.rb +1 -1
  58. data/app/lib/actions/katello/repository/sync.rb +0 -2
  59. data/app/lib/actions/katello/repository/update.rb +15 -28
  60. data/app/lib/actions/katello/repository_set/disable_repository.rb +5 -13
  61. data/app/lib/actions/katello/repository_set/enable_repository.rb +3 -16
  62. data/app/lib/actions/katello/repository_set/scan_cdn.rb +4 -32
  63. data/app/lib/actions/katello/sync_plan/run.rb +37 -0
  64. data/app/lib/actions/pulp/abstract.rb +7 -2
  65. data/app/lib/actions/pulp/abstract_async_task.rb +1 -0
  66. data/app/lib/actions/pulp/consumer/generate_applicability.rb +1 -0
  67. data/app/lib/actions/pulp/repository/copy_module_default.rb +11 -0
  68. data/app/lib/actions/pulp/repository/copy_module_stream.rb +11 -0
  69. data/app/lib/actions/pulp/repository/create.rb +2 -0
  70. data/app/lib/actions/pulp/repository/distributor_publish.rb +3 -2
  71. data/app/lib/actions/pulp/repository/remove_module_default.rb +11 -0
  72. data/app/lib/actions/pulp/repository/remove_module_stream.rb +11 -0
  73. data/app/lib/actions/pulp/repository/sync.rb +6 -19
  74. data/app/lib/actions/pulp/repository/update_importer.rb +9 -7
  75. data/app/lib/katello/concerns/base_template_scope_extensions.rb +42 -0
  76. data/app/lib/katello/concerns/renderer_extensions.rb +6 -4
  77. data/app/lib/katello/http_resource.rb +5 -1
  78. data/app/lib/katello/repo_discovery.rb +6 -2
  79. data/app/lib/katello/resources/candlepin/consumer.rb +18 -1
  80. data/app/lib/katello/resources/candlepin/owner.rb +9 -0
  81. data/app/lib/katello/resources/candlepin/pool.rb +2 -2
  82. data/app/lib/katello/validators/root_repository_unique_attribute_validator.rb +13 -0
  83. data/app/models/katello/authorization/product.rb +3 -4
  84. data/app/models/katello/authorization/repository.rb +4 -4
  85. data/app/models/katello/candlepin/repository_mapper.rb +12 -26
  86. data/app/models/katello/concerns/audit_search.rb +13 -0
  87. data/app/models/katello/concerns/content_facet_host_extensions.rb +1 -1
  88. data/app/models/katello/concerns/content_view_filter_rule_common.rb +1 -0
  89. data/app/models/katello/concerns/host_managed_extensions.rb +68 -2
  90. data/app/models/katello/concerns/hostgroup_extensions.rb +13 -0
  91. data/app/models/katello/concerns/location_extensions.rb +3 -3
  92. data/app/models/katello/concerns/organization_extensions.rb +7 -3
  93. data/app/models/katello/concerns/pulp_database_unit.rb +1 -0
  94. data/app/models/katello/concerns/recurring_logic_extensions.rb +11 -0
  95. data/app/models/katello/concerns/redhat_extensions.rb +0 -25
  96. data/app/models/katello/concerns/search_by_repository_name.rb +21 -0
  97. data/app/models/katello/concerns/setting_extensions.rb +1 -1
  98. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +43 -0
  99. data/app/models/katello/content.rb +7 -3
  100. data/app/models/katello/content_view.rb +4 -4
  101. data/app/models/katello/content_view_component.rb +1 -1
  102. data/app/models/katello/content_view_history.rb +1 -0
  103. data/app/models/katello/content_view_version.rb +14 -2
  104. data/app/models/katello/docker_manifest_list.rb +1 -1
  105. data/app/models/katello/docker_meta_tag.rb +11 -2
  106. data/app/models/katello/docker_tag.rb +1 -1
  107. data/app/models/katello/erratum.rb +6 -0
  108. data/app/models/katello/file_unit.rb +0 -1
  109. data/app/models/katello/glue/candlepin/owner.rb +1 -0
  110. data/app/models/katello/glue/candlepin/pool.rb +1 -2
  111. data/app/models/katello/glue/candlepin/product.rb +0 -4
  112. data/app/models/katello/glue/candlepin/repository.rb +0 -21
  113. data/app/models/katello/glue/provider.rb +4 -2
  114. data/app/models/katello/glue/pulp/repo.rb +10 -173
  115. data/app/models/katello/glue/pulp/repos.rb +2 -112
  116. data/app/models/katello/gpg_key.rb +6 -14
  117. data/app/models/katello/host/content_facet.rb +1 -1
  118. data/app/models/katello/host/subscription_facet.rb +32 -8
  119. data/app/models/katello/kt_environment.rb +9 -29
  120. data/app/models/katello/module_profile.rb +6 -0
  121. data/app/models/katello/module_profile_rpm.rb +5 -0
  122. data/app/models/katello/module_stream.rb +112 -0
  123. data/app/models/katello/module_stream_artifact.rb +5 -0
  124. data/app/models/katello/ostree_branch.rb +0 -1
  125. data/app/models/katello/package_group.rb +1 -1
  126. data/app/models/katello/pool.rb +4 -0
  127. data/app/models/katello/product.rb +18 -21
  128. data/app/models/katello/product_content.rb +2 -2
  129. data/app/models/katello/puppet_module.rb +1 -0
  130. data/app/models/katello/purpose_addons_status.rb +50 -0
  131. data/app/models/katello/purpose_role_status.rb +50 -0
  132. data/app/models/katello/purpose_sla_status.rb +48 -0
  133. data/app/models/katello/purpose_status.rb +56 -0
  134. data/app/models/katello/purpose_usage_status.rb +50 -0
  135. data/app/models/katello/repository.rb +116 -280
  136. data/app/models/katello/repository_module_stream.rb +7 -0
  137. data/app/models/katello/root_repository.rb +262 -0
  138. data/app/models/katello/subscription_status.rb +1 -1
  139. data/app/models/katello/sync_plan.rb +93 -40
  140. data/app/presenters/katello/content_view_version_compare_presenter.rb +7 -2
  141. data/app/services/katello/candlepin/consumer.rb +25 -0
  142. data/app/services/katello/candlepin/message_handler.rb +18 -2
  143. data/app/services/katello/managed_content_medium_provider.rb +27 -0
  144. data/app/services/katello/product_content_finder.rb +3 -3
  145. data/app/services/katello/pulp/module_stream.rb +9 -0
  146. data/app/services/katello/pulp/repository.rb +22 -0
  147. data/app/services/katello/pulp/srpm.rb +1 -1
  148. data/app/services/katello/pxe_files_downloader.rb +41 -0
  149. data/app/services/katello/registration_manager.rb +5 -0
  150. data/app/views/katello/api/v2/content_facet/show.json.rabl +0 -4
  151. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +12 -2
  152. data/app/views/katello/api/v2/debs/compare.json.rabl +10 -0
  153. data/app/views/katello/api/v2/docker_manifest_lists/compare.json.rabl +10 -0
  154. data/app/views/katello/api/v2/environments/show.json.rabl +1 -0
  155. data/app/views/katello/api/v2/hosts/host_collections.json.rabl +3 -0
  156. data/app/views/katello/api/v2/module_streams/base.json.rabl +4 -0
  157. data/app/views/katello/api/v2/module_streams/index.json.rabl +7 -0
  158. data/app/views/katello/api/v2/module_streams/name_stream.json.rabl +3 -0
  159. data/app/views/katello/api/v2/module_streams/name_streams.json.rabl +7 -0
  160. data/app/views/katello/api/v2/module_streams/show.json.rabl +21 -0
  161. data/app/views/katello/api/v2/organizations/show.json.rabl +4 -1
  162. data/app/views/katello/api/v2/products/base.json.rabl +1 -1
  163. data/app/views/katello/api/v2/repositories/base.json.rabl +23 -10
  164. data/app/views/katello/api/v2/repositories/show.json.rabl +47 -38
  165. data/app/views/katello/api/v2/smart_proxies/download_policy.json.rabl +1 -0
  166. data/app/views/katello/api/v2/subscription_facet/base.json.rabl +1 -1
  167. data/app/views/katello/api/v2/sync_plans/show.json.rabl +2 -1
  168. data/app/views/katello/layouts/react.html.erb +1 -0
  169. data/config/katello.yaml.example +1 -2
  170. data/config/routes.rb +5 -0
  171. data/config/routes/api/v2.rb +12 -1
  172. data/config/routes/overrides.rb +1 -0
  173. data/db/migrate/20150114225023_add_upstream_name_to_repository.rb +7 -2
  174. data/db/migrate/20170208215148_add_docker_repo_name.rb +10 -1
  175. data/db/migrate/20180326190408_move_subscription_products.rb +2 -0
  176. data/db/migrate/20180622105300_add_docker_tags_whitelist_to_repository.rb +9 -0
  177. data/db/migrate/20180725083800_change_repository_password_length.rb +5 -0
  178. data/db/migrate/20180806205420_add_index_to_content_view_version.rb +5 -0
  179. data/db/migrate/20180807145652_create_katello_module_streams.rb +88 -0
  180. data/db/migrate/20180807164405_remove_repository_cp_label.rb +5 -0
  181. data/db/migrate/20180808013432_add_system_purpose_attrs.rb +39 -0
  182. data/db/migrate/20180814202747_add_recurring_logic_to_sync_plan.rb +12 -0
  183. data/db/migrate/20180816142044_add_description_to_katello_module_streams.rb +6 -0
  184. data/db/migrate/20180821144248_add_cron_logic_to_sync_plans.rb +5 -0
  185. data/db/migrate/20180828161400_remove_join_table_for_role_and_usage.rb +20 -0
  186. data/db/migrate/20180917173645_add_source_repo_checksum_type_to_katello_repositories.rb +1 -1
  187. data/db/migrate/20180920123913_drop_repo_module_streams_timestamp_not_null.rb +7 -0
  188. data/db/migrate/20180920171008_change_repository_password_to_text.rb +17 -0
  189. data/db/migrate/20180920214134_create_repository_root.rb +142 -0
  190. data/db/seeds.d/111-container-image-bookmarks.rb +19 -0
  191. data/db/seeds.d/111-upgrade_tasks.rb +9 -0
  192. data/db/seeds.d/150-module_job_templates.rb +12 -0
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -0
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -0
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/module-stream-actions.service.js +26 -0
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html +1 -1
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-module-streams-modal.controller.js +60 -0
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +2 -1
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-host-bulk-module-streams-modal.html +70 -0
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +16 -14
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-repository-sets-modal.html +1 -7
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +11 -0
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +8 -4
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +5 -0
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +14 -0
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +48 -0
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-module-streams.html +68 -0
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +15 -0
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +59 -2
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +6 -0
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +81 -27
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html +1 -1
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html +2 -2
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -0
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +10 -0
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories.service.js +0 -1
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +5 -0
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +3 -0
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/content-view-new.controller.js +7 -0
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +1 -2
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +38 -13
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +1 -0
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-module-streams.html +8 -0
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +1 -1
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-package-groups.html +1 -1
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-packages.html +1 -1
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +5 -0
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +7 -0
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.controller.js +1 -0
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +5 -0
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-module-streams.html +38 -0
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment.html +1 -1
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +11 -0
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +3 -0
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-repositories.controller.js +6 -22
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-repositories.html +7 -1
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-details.controller.js +4 -0
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-info.html +6 -0
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +2 -1
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/module-stream.factory.js +27 -0
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/module-streams.module.js +15 -0
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/module-streams/views/partials/module-streams-table.html +25 -0
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-repositories.controller.js +6 -22
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-repositories.html +7 -1
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/repositories-filters.service.js +89 -0
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +4 -5
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +15 -2
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +2 -2
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +15 -11
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +5 -0
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +36 -20
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-module-streams.html +17 -0
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +6 -6
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +9 -0
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +5 -0
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +2 -1
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +10 -0
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/new-sync-plan-modal.controller.js +6 -2
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/repository-set.factory.js +1 -1
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +20 -3
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details.controller.js +2 -1
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +23 -4
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/new-sync-plan.controller.js +10 -6
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan-form.html +11 -3
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plan-helper.service.js +3 -3
  266. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +5 -1
  267. data/engines/bastion_katello/lib/bastion_katello/engine.rb +2 -2
  268. data/lib/katello/engine.rb +7 -12
  269. data/lib/katello/permission_creator.rb +5 -1
  270. data/lib/katello/permissions/host_permissions.rb +1 -0
  271. data/lib/katello/plugin.rb +38 -14
  272. data/lib/katello/tasks/clean_backend_objects.rake +7 -3
  273. data/lib/katello/tasks/reimport.rake +1 -0
  274. data/lib/katello/tasks/repository.rake +11 -8
  275. data/lib/katello/tasks/upgrades/3.9/migrate_sync_plans.rake +29 -0
  276. data/lib/katello/version.rb +1 -1
  277. data/package.json +11 -7
  278. data/webpack/__mocks__/foremanReact/common/I18n.js +5 -0
  279. data/webpack/components/MultiSelect/index.js +15 -3
  280. data/webpack/components/PaginationRow/index.js +1 -1
  281. data/webpack/components/Search/__snapshots__/Search.test.js.snap +1 -0
  282. data/webpack/components/Search/index.js +5 -1
  283. data/webpack/components/SelectOrg/SetOrganization.js +2 -1
  284. data/webpack/components/WithOrganization/__snapshots__/withOrganization.test.js.snap +41 -0
  285. data/webpack/components/WithOrganization/withOrganization.js +42 -10
  286. data/webpack/components/WithOrganization/withOrganization.test.js +26 -0
  287. data/webpack/containers/Application/Headers.js +11 -0
  288. data/webpack/containers/Application/Routes.js +1 -1
  289. data/webpack/containers/Application/config.js +23 -7
  290. data/webpack/containers/Application/withHeaders.js +15 -0
  291. data/webpack/move_to_foreman/common/helpers.js +72 -8
  292. data/webpack/move_to_foreman/components/common/ConfirmDialog/ConfirmDialog.js +1 -0
  293. data/webpack/move_to_foreman/components/common/Dialog/Dialog.js +1 -0
  294. data/webpack/move_to_foreman/components/common/EmptyState/index.js +1 -0
  295. data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.js +1 -1
  296. data/webpack/move_to_foreman/components/common/table/formatters/selectionCellFormatter.js +1 -0
  297. data/webpack/move_to_pf/OptionTooltip/OptionTooltip.scss +20 -0
  298. data/webpack/move_to_pf/OptionTooltip/__tests__/OptionTooltip.test.js +32 -0
  299. data/webpack/move_to_pf/OptionTooltip/__tests__/__snapshots__/OptionTooltip.test.js.snap +84 -0
  300. data/webpack/move_to_pf/OptionTooltip/index.js +83 -0
  301. data/webpack/move_to_pf/TypeAhead/TypeAhead.js +15 -2
  302. data/webpack/move_to_pf/react-bootstrap-select/index.js +10 -4
  303. data/webpack/move_to_pf/test-utils/testHelpers.js +14 -2
  304. data/webpack/redux/actions/RedHatRepositories/enabled.js +29 -3
  305. data/webpack/redux/actions/RedHatRepositories/helpers.js +1 -1
  306. data/webpack/redux/actions/RedHatRepositories/repositorySetRepositories.js +27 -0
  307. data/webpack/redux/consts.js +8 -0
  308. data/webpack/redux/reducers/RedHatRepositories/__tests__/enabled.test.js +62 -0
  309. data/webpack/redux/reducers/RedHatRepositories/{repositorySetRepositories.test.js → __tests__/repositorySetRepositories.test.js} +31 -3
  310. data/webpack/redux/reducers/RedHatRepositories/{sets.test.js → __tests__/sets.test.js} +3 -3
  311. data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +16 -0
  312. data/webpack/redux/reducers/RedHatRepositories/enabled.js +34 -18
  313. data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.fixtures.js +10 -0
  314. data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.js +39 -48
  315. data/webpack/redux/reducers/index.js +6 -0
  316. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailArtifacts.js +19 -0
  317. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailInfo.js +51 -0
  318. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetails.js +147 -0
  319. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsActions.js +25 -0
  320. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsConstants.js +3 -0
  321. data/webpack/scenes/ModuleStreams/Details/ModuleStreamDetailsReducer.js +33 -0
  322. data/webpack/scenes/ModuleStreams/Details/Profiles/ModuleStreamDetailProfiles.js +19 -0
  323. data/webpack/scenes/ModuleStreams/Details/Profiles/ProfileRpmsCellFormatter.js +53 -0
  324. data/webpack/scenes/ModuleStreams/Details/Profiles/ProfileRpmsCellFormatter.scss +4 -0
  325. data/webpack/scenes/ModuleStreams/Details/Profiles/TableSchema.js +35 -0
  326. data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/ModuleStreamDetailProfiles.test.js +14 -0
  327. data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/ProfileRpmsCellFormatter.test.js +24 -0
  328. data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/__snapshots__/ModuleStreamDetailProfiles.test.js.snap +126 -0
  329. data/webpack/scenes/ModuleStreams/Details/Profiles/__tests__/__snapshots__/ProfileRpmsCellFormatter.test.js.snap +14 -0
  330. data/webpack/scenes/ModuleStreams/Details/Repositories/ModuleStreamDetailRepositories.js +19 -0
  331. data/webpack/scenes/ModuleStreams/Details/Repositories/TableSchema.js +39 -0
  332. data/webpack/scenes/ModuleStreams/Details/Repositories/__tests__/ModuleStreamDetailRepositories.test.js +14 -0
  333. data/webpack/scenes/ModuleStreams/Details/Repositories/__tests__/__snapshots__/ModuleStreamDetailRepositories.test.js.snap +70 -0
  334. data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailArtifacts.test.js +14 -0
  335. data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailInfo.test.js +14 -0
  336. data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetails.test.js +27 -0
  337. data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailsActions.test.js +42 -0
  338. data/webpack/scenes/ModuleStreams/Details/__tests__/ModuleStreamDetailsReducer.test.js +33 -0
  339. data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailArtifacts.test.js.snap +18 -0
  340. data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailInfo.test.js.snap +111 -0
  341. data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetails.test.js.snap +552 -0
  342. data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailsActions.test.js.snap +144 -0
  343. data/webpack/scenes/ModuleStreams/Details/__tests__/__snapshots__/ModuleStreamDetailsReducer.test.js.snap +50 -0
  344. data/webpack/scenes/ModuleStreams/Details/__tests__/moduleStreamDetails.fixtures.js +115 -0
  345. data/webpack/scenes/ModuleStreams/Details/index.js +17 -0
  346. data/webpack/scenes/ModuleStreams/ModuleStreamsActions.js +29 -0
  347. data/webpack/scenes/ModuleStreams/ModuleStreamsConstants.js +3 -0
  348. data/webpack/scenes/ModuleStreams/ModuleStreamsPage.js +98 -0
  349. data/webpack/scenes/ModuleStreams/ModuleStreamsReducer.js +43 -0
  350. data/webpack/scenes/ModuleStreams/ModuleStreamsTable.js +38 -0
  351. data/webpack/scenes/ModuleStreams/ModuleStreamsTableSchema.js +69 -0
  352. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamPage.test.js +27 -0
  353. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsActions.test.js +49 -0
  354. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsReducer.test.js +46 -0
  355. data/webpack/scenes/ModuleStreams/__tests__/ModuleStreamsTable.test.js +25 -0
  356. data/webpack/scenes/ModuleStreams/__tests__/__snapshots__/ModuleStreamPage.test.js.snap +69 -0
  357. data/webpack/scenes/ModuleStreams/__tests__/__snapshots__/ModuleStreamsTable.test.js.snap +95 -0
  358. data/webpack/scenes/ModuleStreams/__tests__/moduleStreams.fixtures.js +72 -0
  359. data/webpack/scenes/ModuleStreams/index.js +17 -0
  360. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +120 -0
  361. data/webpack/scenes/RedHatRepositories/components/{EnabledRepository.stories.js → EnabledRepository/EnabledRepository.stories.js} +0 -0
  362. data/webpack/scenes/RedHatRepositories/components/{EnabledRepositoryContent.js → EnabledRepository/EnabledRepositoryContent.js} +0 -0
  363. data/webpack/scenes/RedHatRepositories/components/{__tests__ → EnabledRepository/__tests__}/EnabledRepository.test.js +6 -2
  364. data/webpack/scenes/RedHatRepositories/components/{__tests__ → EnabledRepository/__tests__}/EnabledRepositoryContent.test.js +0 -0
  365. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepository.test.js.snap +31 -0
  366. data/webpack/scenes/RedHatRepositories/components/{__tests__ → EnabledRepository/__tests__}/__snapshots__/EnabledRepositoryContent.test.js.snap +0 -0
  367. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/index.js +17 -0
  368. data/webpack/scenes/RedHatRepositories/components/RepositorySet.js +1 -1
  369. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepositories.js +43 -5
  370. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepositoriesHelpers.js +3 -0
  371. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +168 -0
  372. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/__test__/RepositorySetRepository.test.js +38 -0
  373. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/__test__/__snapshots__/RepositorySetRepository.test.js.snap +70 -0
  374. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/index.js +18 -0
  375. data/webpack/scenes/RedHatRepositories/components/SearchBar.js +4 -3
  376. data/webpack/scenes/RedHatRepositories/components/__tests__/RepositorySetRepositories.test.js +44 -0
  377. data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/RepositorySetRepositories.test.js.snap +48 -0
  378. data/webpack/scenes/RedHatRepositories/helpers.js +19 -15
  379. data/webpack/scenes/RedHatRepositories/index.js +1 -3
  380. data/webpack/scenes/RedHatRepositories/index.scss +16 -0
  381. data/webpack/scenes/Settings/Tables/TableActions.js +73 -0
  382. data/webpack/scenes/Settings/Tables/TableConstants.js +11 -0
  383. data/webpack/scenes/Settings/Tables/TableHelpers.js +8 -0
  384. data/webpack/scenes/Settings/Tables/TableReducer.js +46 -0
  385. data/webpack/scenes/Settings/Tables/__tests__/Table.fixtures.js +125 -0
  386. data/webpack/scenes/Settings/Tables/__tests__/TableActions.test.js +84 -0
  387. data/webpack/scenes/Settings/Tables/__tests__/TableReducer.test.js +41 -0
  388. data/webpack/scenes/Settings/Tables/__tests__/__snapshots__/TableReducer.test.js.snap +76 -0
  389. data/webpack/scenes/Settings/index.js +4 -0
  390. data/webpack/scenes/Subscriptions/Details/SubscriptionAttributes.js +2 -0
  391. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailActions.js +1 -1
  392. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailAssociations.js +1 -0
  393. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailInfo.js +1 -0
  394. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailProduct.js +20 -13
  395. data/webpack/scenes/Subscriptions/Details/{SubscriptionDetailEnabledProducts.js → SubscriptionDetailProductContent.js} +5 -5
  396. data/webpack/scenes/Subscriptions/Details/SubscriptionDetailReducer.js +3 -3
  397. data/webpack/scenes/Subscriptions/Details/SubscriptionDetails.js +7 -6
  398. data/webpack/scenes/Subscriptions/Details/__tests__/{SubscriptionDetailEnabledProducts.test.js → SubscriptionDetailProductContent.test.js} +4 -4
  399. data/webpack/scenes/Subscriptions/Details/__tests__/SubscriptionDetails.test.js +2 -2
  400. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetailProduct.test.js.snap +28 -16
  401. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/{SubscriptionDetailEnabledProducts.test.js.snap → SubscriptionDetailProductContent.test.js.snap} +1 -1
  402. data/webpack/scenes/Subscriptions/Details/__tests__/__snapshots__/SubscriptionDetails.test.js.snap +16 -16
  403. data/webpack/scenes/Subscriptions/Details/__tests__/subscriptionDetails.fixtures.js +1 -1
  404. data/webpack/scenes/Subscriptions/Manifest/DeleteManifestModalText.js +2 -0
  405. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +38 -61
  406. data/webpack/scenes/Subscriptions/Manifest/ManifestHistoryReducer.js +4 -0
  407. data/webpack/scenes/Subscriptions/Manifest/ManifestHistoryTableSchema.js +1 -0
  408. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +3 -3
  409. data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +12 -3
  410. data/webpack/scenes/Subscriptions/SubscriptionActions.js +26 -0
  411. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +56 -0
  412. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +26 -11
  413. data/webpack/scenes/Subscriptions/SubscriptionValidations.js +1 -0
  414. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +144 -39
  415. data/webpack/scenes/Subscriptions/SubscriptionsPage.scss +7 -0
  416. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +10 -16
  417. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsTableSchema.js +1 -0
  418. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsPage.test.js +1 -1
  419. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +11 -1
  420. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +15 -2
  421. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +12 -0
  422. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +19 -0
  423. data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +87 -0
  424. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/EntitlementsInlineEditFormatter.js +1 -1
  425. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionTypeFormatter.js +31 -0
  426. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTable.js +16 -11
  427. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +18 -3
  428. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionTypeFormatter.test.js +33 -0
  429. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/SubscriptionsTable.test.js +29 -0
  430. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionTypeFormatter.test.js.snap +34 -0
  431. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +24 -43
  432. data/webpack/scenes/Subscriptions/index.js +24 -7
  433. data/webpack/scenes/Tasks/TaskActions.js +43 -19
  434. data/webpack/scenes/Tasks/TaskConstants.js +1 -0
  435. data/webpack/scenes/Tasks/__tests__/TaskActions.test.js +15 -12
  436. data/webpack/scenes/Tasks/helpers.js +17 -27
  437. data/webpack/services/api/index.js +3 -0
  438. metadata +160 -52
  439. data/app/lib/actions/katello/repository/scheduled_sync.rb +0 -15
  440. data/app/lib/actions/katello/sync_plan/add_products.rb +0 -27
  441. data/app/lib/actions/katello/sync_plan/destroy.rb +0 -26
  442. data/app/lib/actions/katello/sync_plan/remove_products.rb +0 -23
  443. data/app/lib/actions/katello/sync_plan/update.rb +0 -20
  444. data/app/lib/actions/pulp/repos/update.rb +0 -24
  445. data/app/lib/actions/pulp/repository/ensure_sync_notification.rb +0 -11
  446. data/app/lib/actions/pulp/repository/remove_schedule.rb +0 -16
  447. data/app/lib/actions/pulp/repository/update_schedule.rb +0 -47
  448. data/app/lib/katello/validators/repository_unique_attribute_validator.rb +0 -13
  449. data/app/models/katello/candlepin/docker_repository_mapper.rb +0 -77
  450. data/app/models/katello/input_template_renderer.rb +0 -7
  451. data/lib/katello/tasks/upgrades/2.4/import_distributions.rake +0 -11
  452. data/lib/katello/tasks/upgrades/2.4/import_package_groups.rake +0 -11
  453. data/lib/katello/tasks/upgrades/2.4/import_puppet_modules.rake +0 -12
  454. data/lib/katello/tasks/upgrades/2.4/import_rpms.rake +0 -12
  455. data/lib/katello/tasks/upgrades/3.0/add_export_distributor.rake +0 -14
  456. data/lib/katello/tasks/upgrades/3.0/delete_docker_v1_content.rake +0 -27
  457. data/lib/katello/tasks/upgrades/3.0/update_puppet_repository_distributors.rake +0 -20
  458. data/lib/katello/tasks/upgrades/3.0/update_subscription_facet_backend_data.rake +0 -9
  459. data/lib/katello/tasks/upgrades/3.3/hypervisors.rake +0 -7
  460. data/lib/katello/tasks/upgrades/3.4/reindex_docker_tags.rake +0 -12
  461. data/lib/katello/tasks/upgrades/3.4/remove_unused_products.rake +0 -28
  462. data/lib/katello/tasks/upgrades/3.6/import_backend_consumer_attributes.rake +0 -32
  463. data/lib/katello/tasks/upgrades/3.6/import_product_content.rake +0 -12
  464. data/lib/katello/tasks/upgrades/3.6/republish_file_repos.rake +0 -16
  465. data/lib/katello/tasks/upgrades/3.7/import_pools.rake +0 -12
  466. data/lib/katello/tasks/upgrades/3.7/make_all_ks_repos_bootable.rake +0 -11
  467. data/webpack/helpers/caret.js +0 -6
  468. data/webpack/redux/reducers/RedHatRepositories/enabled.test.js +0 -36
  469. data/webpack/redux/reducers/RedHatRepositories/filters.fixtures.js +0 -5
  470. data/webpack/scenes/RedHatRepositories/components/EnabledRepository.js +0 -105
  471. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository.js +0 -129
  472. data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/EnabledRepository.test.js.snap +0 -25
@@ -42,4 +42,8 @@
42
42
  .modal-body .uib-time input {
43
43
  width: 100%;
44
44
  padding-right: 6px;
45
- }
45
+ }
46
+
47
+ .drop-down-check-box {
48
+ margin-left: 10px
49
+ };
@@ -10,7 +10,7 @@ module BastionKatello
10
10
  consumer_cert_rpm = 'katello-ca-consumer-latest.noarch.rpm'
11
11
  consumer_cert_rpm = SETTINGS[:katello][:consumer_cert_rpm] if SETTINGS.key?(:katello)
12
12
 
13
- db_migrated = ActiveRecord::Base.connection.table_exists?(Setting.table_name)
13
+ db_migrated = !Foreman.in_setup_db_rake? && ActiveRecord::Base.connection.table_exists?(Setting.table_name)
14
14
 
15
15
  Bastion.register_plugin(
16
16
  :name => 'bastion_katello',
@@ -40,7 +40,7 @@ module BastionKatello
40
40
  'consumerCertRPM' => consumer_cert_rpm,
41
41
  'defaultDownloadPolicy' => !Foreman.in_rake? && db_migrated && Setting['default_download_policy'],
42
42
  'remoteExecutionPresent' => ::Katello.with_remote_execution?,
43
- 'remoteExecutionByDefault' => ::Katello.with_remote_execution? && !Foreman.in_rake?('db:migrate') &&
43
+ 'remoteExecutionByDefault' => ::Katello.with_remote_execution? &&
44
44
  db_migrated && Setting['remote_execution_by_default']
45
45
  }
46
46
  )
@@ -22,7 +22,6 @@ module Katello
22
22
  :rest_client_timeout => 30,
23
23
  :gpg_strict_validation => false,
24
24
  :redhat_repository_url => 'https://cdn.redhat.com',
25
- :post_sync_url => 'http://localhost:3000/katello/api/v2/repositories/sync_complete?token=katello',
26
25
  :consumer_cert_rpm => 'katello-ca-consumer-latest.noarch.rpm',
27
26
  :consumer_cert_sh => 'katello-rhsm-consumer',
28
27
  :pulp => {
@@ -32,7 +31,8 @@ module Katello
32
31
  :skip_checksum_validation => false,
33
32
  :upload_chunk_size => 1_048_575, # upload size in bytes to pulp. see SSLRenegBufferSize in apache
34
33
  :sync_threads => 4,
35
- :sync_KBlimit => nil
34
+ :sync_KBlimit => nil,
35
+ :notifier_ca_path => "/etc/pki/tls/certs/ca-bundle.crt"
36
36
  },
37
37
  :candlepin => {
38
38
  :url => 'https://localhost:8443/candlepin',
@@ -132,13 +132,9 @@ module Katello
132
132
  fail Foreman::Exception, N_("Organizations disabled, try allowing them in foreman/config/settings.yaml")
133
133
  end
134
134
 
135
- # Rendering concerns needs to be injected to controllers, Foreman::Renderer was already included
136
- # otherwise subscription_manager_configuration_url is not available in template preview
137
- (TemplatesController.descendants + [TemplatesController]).each do |klass|
138
- klass.send(:include, Katello::KatelloUrlsHelper)
139
- end
140
135
  # Lib Extensions
141
- ::Foreman::Renderer.send :include, Katello::Concerns::RendererExtensions
136
+ ::Foreman::Renderer::Scope::Variables::Base.send :include, Katello::Concerns::RendererExtensions
137
+ ::Foreman::Renderer::Scope::Base.send :include, Katello::Concerns::BaseTemplateScopeExtensions
142
138
 
143
139
  # Model extensions
144
140
  ::Environment.send :include, Katello::Concerns::EnvironmentExtensions
@@ -153,6 +149,7 @@ module Katello
153
149
  ::Container.send :include, Katello::Concerns::ContainerExtensions
154
150
  ::DockerContainerWizardState.send :include, Katello::Concerns::DockerContainerWizardStateExtensions
155
151
  ::DockerContainerWizardStates::Image.send :include, Katello::Concerns::DockerContainerWizardStateImageExtensions
152
+ ForemanTasks::RecurringLogic.send :include, Katello::Concerns::RecurringLogicExtensions
156
153
 
157
154
  #Controller extensions
158
155
  ::HostsController.send :include, Katello::Concerns::HostsControllerExtensions
@@ -200,10 +197,6 @@ module Katello
200
197
  require_dependency "#{Katello::Engine.root}/app/services/katello/proxy_status/pulp_node"
201
198
  ::PuppetClassImporter.send :include, Katello::Services::PuppetClassImporterExtensions
202
199
 
203
- #facet extensions
204
- ::Host::Managed.send :include, ::Katello::Concerns::ContentFacetHostExtensions
205
- ::Host::Managed.send :include, ::Katello::Concerns::SubscriptionFacetHostExtensions
206
-
207
200
  #Api controller extensions
208
201
  ::Api::V2::HostsController.send :include, Katello::Concerns::Api::V2::HostsControllerExtensions
209
202
  ::Api::V2::HostgroupsController.send :include, Katello::Concerns::Api::V2::HostgroupsControllerExtensions
@@ -224,6 +217,8 @@ module Katello
224
217
  helper Katello::Concerns::HostsAndHostgroupsHelperExtensions
225
218
  end
226
219
 
220
+ ::AuditSearch::ClassMethods.prepend Katello::Concerns::AuditSearch
221
+
227
222
  load 'katello/repository_types.rb'
228
223
  load 'katello/scheduled_jobs.rb'
229
224
  end
@@ -77,6 +77,7 @@ module Katello
77
77
  'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
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
+ 'katello/api/v2/module_streams' => [:index, :show, :auto_complete_search, :compare],
80
81
  'katello/content_views' => [:auto_complete, :auto_complete_search],
81
82
  'katello/errata' => [:short_details, :auto_complete],
82
83
  'katello/packages' => [:details, :auto_complete],
@@ -91,6 +92,7 @@ module Katello
91
92
  :packages_items,
92
93
  :errata_items,
93
94
  :puppet_modules_items,
95
+ :module_streams,
94
96
  :view_packages,
95
97
  :view_puppet_modules,
96
98
  :repo_packages,
@@ -249,7 +251,7 @@ module Katello
249
251
  'katello/api/v2/products' => [:index, :show, :auto_complete_search],
250
252
  'katello/api/v2/repositories' => [:index, :show, :repository_types, :auto_complete_search, :cancel],
251
253
  'katello/api/v2/packages' => [:index, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch, :compare],
252
- 'katello/api/v2/debs' => [:index, :show, :auto_complete_search],
254
+ 'katello/api/v2/debs' => [:index, :show, :auto_complete_search, :compare],
253
255
  'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
254
256
  'katello/api/v2/docker_manifests' => [:index, :show, :auto_complete_search, :compare],
255
257
  'katello/api/v2/docker_manifest_lists' => [:index, :show, :auto_complete_search, :compare],
@@ -258,6 +260,7 @@ module Katello
258
260
  'katello/api/v2/ostree_branches' => [:index, :show, :auto_complete_search, :compare],
259
261
  'katello/api/v2/errata' => [:index, :show, :auto_complete_search, :compare],
260
262
  'katello/api/v2/puppet_modules' => [:index, :show, :auto_complete_search, :compare],
263
+ 'katello/api/v2/module_streams' => [:index, :show, :auto_complete_search, :compare, :auto_complete_name],
261
264
  'katello/errata' => [:short_details, :auto_complete],
262
265
  'katello/packages' => [:details, :auto_complete],
263
266
  'katello/puppet_modules' => [:show],
@@ -272,6 +275,7 @@ module Katello
272
275
  :packages_items,
273
276
  :errata_items,
274
277
  :puppet_modules_items,
278
+ :module_streams,
275
279
  :repo_packages,
276
280
  :repo_errata,
277
281
  :repo_puppet_modules,
@@ -45,6 +45,7 @@ Foreman::AccessControl.permission(:view_hosts).actions.concat [
45
45
  'katello/api/v2/hosts_bulk_actions/applicable_errata',
46
46
  'katello/api/v2/hosts_bulk_actions/installable_errata',
47
47
  'katello/api/v2/hosts_bulk_actions/available_incremental_updates',
48
+ 'katello/api/v2/hosts_bulk_actions/module_streams',
48
49
  'katello/api/v2/host_packages/index',
49
50
  'katello/api/v2/host_tracer/index',
50
51
  'katello/remote_execution/new',
@@ -11,7 +11,7 @@ Foreman::Plugin.register :katello do
11
11
  :red_hat_subscriptions,
12
12
  :caption => N_('Subscriptions'),
13
13
  :url => '/subscriptions',
14
- :url_hash => {:controller => 'katello/react',
14
+ :url_hash => {:controller => 'katello/api/v2/subscriptions',
15
15
  :action => 'index'},
16
16
  :engine => Katello::Engine,
17
17
  :turbolinks => false
@@ -113,17 +113,6 @@ Foreman::Plugin.register :katello do
113
113
  :turbolinks => false
114
114
  end
115
115
 
116
- if ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::YUM_TYPE)
117
- menu :top_menu,
118
- :errata,
119
- :caption => N_('Errata'),
120
- :url => '/errata',
121
- :url_hash => {:controller => 'katello/api/v2/errata',
122
- :action => 'index'},
123
- :engine => Katello::Engine,
124
- :turbolinks => false
125
- end
126
-
127
116
  if ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::FILE_TYPE)
128
117
  menu :top_menu,
129
118
  :files,
@@ -155,6 +144,24 @@ Foreman::Plugin.register :katello do
155
144
  :action => 'index'},
156
145
  :engine => Katello::Engine,
157
146
  :turbolinks => false
147
+
148
+ menu :top_menu,
149
+ :errata,
150
+ :caption => N_('Errata'),
151
+ :url => '/errata',
152
+ :url_hash => {:controller => 'katello/api/v2/errata',
153
+ :action => 'index'},
154
+ :engine => Katello::Engine,
155
+ :turbolinks => false
156
+
157
+ menu :top_menu,
158
+ :module_streams,
159
+ :caption => N_('Module Streams'),
160
+ :url => '/module_streams',
161
+ :url_hash => {:controller => 'katello/api/v2/module_streams',
162
+ :action => 'index'},
163
+ :engine => Katello::Engine,
164
+ :turbolinks => false
158
165
  end
159
166
 
160
167
  if ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::PUPPET_TYPE)
@@ -192,6 +199,8 @@ Foreman::Plugin.register :katello do
192
199
  :turbolinks => false
193
200
 
194
201
  allowed_template_helpers :subscription_manager_configuration_url, :repository_url
202
+ extend_template_helpers Katello::KatelloUrlsHelper
203
+
195
204
  search_path_override("Katello") do |resource|
196
205
  "/#{Katello::Util::Model.model_to_controller_path(resource)}/auto_complete_search"
197
206
  end
@@ -201,8 +210,8 @@ Foreman::Plugin.register :katello do
201
210
  parameter_filter ::Host::Managed, :host_collection_ids => [],
202
211
  :content_facet_attributes => [:content_view_id, :lifecycle_environment_id, :content_source_id,
203
212
  :host, :kickstart_repository_id],
204
- :subscription_facet_attributes => [:release_version, :autoheal, :service_level, :host,
205
- {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, :hypervisor_guest_uuids => []]
213
+ :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 => []]
206
215
  parameter_filter Hostgroup, :content_view_id, :lifecycle_environment_id, :content_source_id,
207
216
  :kickstart_repository_id
208
217
  parameter_filter Organization, :label, :service_level
@@ -236,8 +245,16 @@ Foreman::Plugin.register :katello do
236
245
 
237
246
  register_custom_status(Katello::ErrataStatus)
238
247
  register_custom_status(Katello::SubscriptionStatus)
248
+ register_custom_status(Katello::PurposeSlaStatus)
249
+ register_custom_status(Katello::PurposeRoleStatus)
250
+ register_custom_status(Katello::PurposeUsageStatus)
251
+ register_custom_status(Katello::PurposeAddonsStatus)
252
+ register_custom_status(Katello::PurposeStatus)
239
253
  register_custom_status(Katello::TraceStatus)
240
254
 
255
+ extend_rabl_template 'api/v2/smart_proxies/main', 'katello/api/v2/smart_proxies/download_policy'
256
+ extend_rabl_template 'api/v2/hosts/show', 'katello/api/v2/hosts/host_collections'
257
+
241
258
  extend_page "smart_proxies/show" do |cx|
242
259
  cx.add_pagelet :details_content,
243
260
  :name => _('Storage'),
@@ -249,11 +266,13 @@ Foreman::Plugin.register :katello do
249
266
  api_view :list => 'katello/api/v2/content_facet/base_with_root', :single => 'katello/api/v2/content_facet/show'
250
267
  api_docs :content_facet_attributes, ::Katello::Api::V2::HostContentsController
251
268
  template_compatibility_properties :content_source_id, :content_source
269
+ extend_model ::Katello::Concerns::ContentFacetHostExtensions
252
270
  end
253
271
 
254
272
  register_facet Katello::Host::SubscriptionFacet, :subscription_facet do
255
273
  api_view :list => 'katello/api/v2/subscription_facet/base_with_root', :single => 'katello/api/v2/subscription_facet/show'
256
274
  api_docs :subscription_facet_attributes, ::Katello::Api::V2::HostSubscriptionsController
275
+ extend_model ::Katello::Concerns::SubscriptionFacetHostExtensions
257
276
  end
258
277
 
259
278
  if Katello.with_remote_execution?
@@ -265,6 +284,9 @@ Foreman::Plugin.register :katello do
265
284
  RemoteExecutionFeature.register(:katello_group_remove, N_("Katello: Remove Package Group"), :description => N_("Remove package group via Katello interface"), :provided_inputs => ['package'])
266
285
  RemoteExecutionFeature.register(:katello_errata_install, N_("Katello: Install Errata"), :description => N_("Install errata via Katello interface"), :provided_inputs => ['errata'])
267
286
  RemoteExecutionFeature.register(:katello_service_restart, N_("Katello: Service Restart"), :description => N_("Restart Services via Katello interface"), :provided_inputs => ['helpers'])
287
+ RemoteExecutionFeature.register(:katello_module_stream_action, N_("Katello: Module Stream Actions"),
288
+ :description => N_("Perform a module stream action via Katello interface"),
289
+ :provided_inputs => ['action', 'module_spec', 'options'])
268
290
  allowed_template_helpers :errata
269
291
  end
270
292
 
@@ -288,6 +310,8 @@ Foreman::Plugin.register :katello do
288
310
 
289
311
  register_info_provider Katello::Host::InfoProvider
290
312
 
313
+ medium_providers.register(Katello::ManagedContentMediumProvider)
314
+
291
315
  Katello::PermissionCreator.new(self).define
292
316
  add_all_permissions_to_default_roles
293
317
 
@@ -81,9 +81,13 @@ namespace :katello do
81
81
  end
82
82
  end
83
83
 
84
+ def commit?
85
+ ENV['COMMIT'] == 'true' || ENV['FOREMAN_UPGRADE'] == '1'
86
+ end
87
+
84
88
  # rubocop:disable HandleExceptions
85
89
  def execute(error_msg)
86
- if ENV['COMMIT'] == 'true'
90
+ if commit?
87
91
  yield
88
92
  end
89
93
  rescue RestClient::ResourceNotFound
@@ -92,11 +96,11 @@ namespace :katello do
92
96
  print e.inspect
93
97
  end
94
98
 
95
- unless ENV['COMMIT'] == 'true'
99
+ unless commit?
96
100
  print "The following changes will not actually be performed. Rerun with COMMIT=true to apply the changes\n"
97
101
  end
98
102
 
99
- SETTINGS[:katello][:candlepin][:bulk_load_size] = 15_000
103
+ SETTINGS[:katello][:candlepin][:bulk_load_size] = 1_500
100
104
  User.current = User.anonymous_admin
101
105
  cleaner = BackendCleaner.new
102
106
  cleaner.populate!
@@ -22,6 +22,7 @@ namespace :katello do
22
22
  Katello::PuppetModule,
23
23
  Katello::Rpm,
24
24
  Katello::Srpm,
25
+ Katello::ModuleStream,
25
26
  Katello::Deb,
26
27
  Katello::FileUnit,
27
28
  Katello::Subscription,
@@ -3,6 +3,10 @@ namespace :katello do
3
3
  ForemanTasks.dynflow.config.remote = true
4
4
  end
5
5
 
6
+ def commit?
7
+ ENV['COMMIT'] == 'true' || ENV['FOREMAN_UPGRADE'] == '1'
8
+ end
9
+
6
10
  desc "Check for repositories that have not been published since their last sync, and republish if they have."
7
11
  task :publish_unpublished_repositories => ["environment", "disable_dynflow", "check_ping"] do
8
12
  needing_publish = []
@@ -29,7 +33,7 @@ namespace :katello do
29
33
  repos = lookup_repositories
30
34
 
31
35
  if repos.any?
32
- task = ForemanTasks.async_task(Actions::Katello::Repository::BulkMetadataGenerate, repos.all.order(:name))
36
+ task = ForemanTasks.async_task(Actions::Katello::Repository::BulkMetadataGenerate, repos.all.order_by_root(:name))
33
37
  puts "Regenerating #{repos.count} repositories. You can monitor these on task id #{task.id}\n"
34
38
  else
35
39
  puts "No repositories found for regeneration."
@@ -42,7 +46,7 @@ namespace :katello do
42
46
  repos = lookup_repositories
43
47
 
44
48
  if repos.any?
45
- task = ForemanTasks.async_task(::Actions::BulkAction, Actions::Katello::Repository::RefreshRepository, repos.all.order(:name))
49
+ task = ForemanTasks.async_task(::Actions::BulkAction, Actions::Katello::Repository::RefreshRepository, repos.all.order_by_root(:name))
46
50
  puts "Refreshing #{repos.count} repositories. You can monitor these on task id #{task.id}\n"
47
51
  else
48
52
  puts "No repositories found for regeneration."
@@ -51,7 +55,7 @@ namespace :katello do
51
55
 
52
56
  desc "Correct missing pulp repositories. Specify CONTENT_VIEW=name and LIFECYCLE_ENVIRONMENT=name to narrow repositories. COMMIT=true to perform operation."
53
57
  task :correct_repositories => ["environment", "check_ping"] do
54
- puts "All operations will be skipped. Re-run with COMMIT=true to perform corrections." if ENV['COMMIT'] != 'true'
58
+ puts "All operations will be skipped. Re-run with COMMIT=true to perform corrections." unless commit?
55
59
 
56
60
  User.current = User.anonymous_api_admin
57
61
  repos = lookup_repositories
@@ -66,7 +70,7 @@ namespace :katello do
66
70
 
67
71
  desc "Correct missing pulp repositories for puppet environments. Specify CONTENT_VIEW=name and LIFECYCLE_ENVIRONMENT=name to narrow repositories. COMMIT=true to perform operation."
68
72
  task :correct_puppet_environments => ["environment", "check_ping"] do
69
- puts "All operations will be skipped. Re-run with COMMIT=true to perform corrections." if ENV['COMMIT'] != 'true'
73
+ puts "All operations will be skipped. Re-run with COMMIT=true to perform corrections." unless commit?
70
74
 
71
75
  User.current = User.anonymous_api_admin
72
76
  puppet_envs = lookup_puppet_environments
@@ -139,19 +143,18 @@ namespace :katello do
139
143
  end
140
144
 
141
145
  def handle_missing_repo(repo)
142
- commit = ENV['COMMIT'] == 'true'
143
146
  puts "Repository #{repo.id} Missing"
144
147
  if repo.content_view.default?
145
148
  puts "Recreating #{repo.id}"
146
- ForemanTasks.sync_task(::Actions::Katello::Repository::Create, repo) if commit
149
+ ForemanTasks.sync_task(::Actions::Katello::Repository::Create, repo) if commit?
147
150
  else
148
151
  puts "Deleting #{repo.id}"
149
- ForemanTasks.sync_task(::Actions::Katello::Repository::Destroy, repo, :planned_destroy => true) if commit
152
+ ForemanTasks.sync_task(::Actions::Katello::Repository::Destroy, repo, :planned_destroy => true) if commit?
150
153
  end
151
154
  end
152
155
 
153
156
  def handle_missing_puppet_env(puppet_env)
154
157
  puts "Content View Puppet Environment #{puppet_env.id} Missing, Creating."
155
- ForemanTasks.sync_task(::Actions::Katello::ContentViewPuppetEnvironment::Create, puppet_env) if ENV['COMMIT'] == 'true'
158
+ ForemanTasks.sync_task(::Actions::Katello::ContentViewPuppetEnvironment::Create, puppet_env) if commit?
156
159
  end
157
160
  end
@@ -0,0 +1,29 @@
1
+ namespace :katello do
2
+ namespace :upgrades do
3
+ namespace '3.9' do
4
+ desc "Migrate Pulp Sync Plans to new recurring logics"
5
+ task :migrate_sync_plans => ["environment"] do
6
+ User.current = User.anonymous_admin
7
+ puts "Starting recurring logic for migrated sync plans and deleting Pulp schedules"
8
+
9
+ Katello::SyncPlan.find_each do |sync_plan|
10
+ if sync_plan.foreman_tasks_recurring_logic.state.nil?
11
+ sync_plan.start_recurring_logic
12
+ sync_plan.foreman_tasks_recurring_logic.enabled = false unless sync_plan.enabled
13
+ end
14
+
15
+ sync_plan.products.each do |product|
16
+ product.repos(product.library).each do |repo_k|
17
+ repo = ::Katello::Repository.find(repo_k.id)
18
+ begin
19
+ Katello.pulp_server.extensions.repository.remove_schedules(repo.pulp_id, repo.importer_type)
20
+ rescue RestClient::ResourceNotFound
21
+ puts "Could not update repository #{repo.id}, missing in pulp."
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "3.8.1".freeze
2
+ VERSION = "3.9.0.rc1".freeze
3
3
  end
data/package.json CHANGED
@@ -9,8 +9,8 @@
9
9
  "test:current": "jest webpack --watch",
10
10
  "format": "prettier --single-quote --trailing-comma es5 --write 'webpack/**/*.js'",
11
11
  "build": "npm run format && npm run lint",
12
- "lint": "eslint webpack/ || exit 0",
13
- "lint:fix": "eslint --fix webpack/ || exit 0",
12
+ "lint": "eslint webpack/",
13
+ "lint:fix": "eslint --fix webpack/",
14
14
  "lint:test": "npm run lint && npm test"
15
15
  },
16
16
  "repository": {
@@ -25,16 +25,18 @@
25
25
  "@storybook/storybook-deployer": "^2.0.0",
26
26
  "babel-core": "^6.26.3",
27
27
  "babel-jest": "^23.4.0",
28
+ "babel-eslint": "^8.2.6",
28
29
  "babel-plugin-transform-class-properties": "^6.24.1",
29
30
  "babel-plugin-transform-object-rest-spread": "^6.26.0",
30
31
  "babel-polyfill": "^6.26.0",
31
32
  "babel-preset-env": "^1.6.0",
32
33
  "babel-preset-react": "^6.24.1",
33
- "enzyme": "^3.2.0",
34
- "enzyme-adapter-react-16": "^1.1.0",
34
+ "enzyme": "^3.4.0",
35
+ "enzyme-adapter-react-16": "^1.4.0",
35
36
  "enzyme-to-json": "^3.1.2",
36
- "eslint": "^4.8.0",
37
+ "eslint": "^4.19.1",
37
38
  "eslint-config-airbnb": "^16.0.0",
39
+ "eslint-plugin-babel": "^5.1.0",
38
40
  "eslint-plugin-import": "^2.7.0",
39
41
  "eslint-plugin-jest": "^21.18.0",
40
42
  "eslint-plugin-jsx-a11y": "^6.0.2",
@@ -57,11 +59,13 @@
57
59
  "patternfly": "^3.41.1",
58
60
  "patternfly-react": "^2.5.1",
59
61
  "prop-types": "^15.6.0",
60
- "react": "^16.3.1",
62
+ "query-string": "^6.1.0",
63
+ "react": "^16.4.0",
61
64
  "react-bootstrap": "^0.32.1",
62
65
  "react-bootstrap-tooltip-button": "^1.0.6",
63
- "react-dom": "^16.3.1",
66
+ "react-dom": "^16.4.0",
64
67
  "react-ellipsis-with-tooltip": "^1.0.7",
68
+ "react-helmet": "^5.2.0",
65
69
  "react-redux": "^5.0.6",
66
70
  "react-router": "^4.2.0",
67
71
  "react-router-bootstrap": "0.24.4",