katello 3.6.0.1.rc2 → 3.7.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 (530) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/activation_key_edit.js +2 -2
  3. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +6 -4
  4. data/app/controllers/katello/api/v2/activation_keys_controller.rb +1 -3
  5. data/app/controllers/katello/api/v2/api_controller.rb +13 -3
  6. data/app/controllers/katello/api/v2/content_credentials_controller.rb +116 -0
  7. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
  8. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -0
  9. data/app/controllers/katello/api/v2/content_views_controller.rb +2 -1
  10. data/app/controllers/katello/api/v2/environments_controller.rb +20 -3
  11. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +5 -0
  12. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +14 -7
  13. data/app/controllers/katello/api/v2/products_controller.rb +31 -1
  14. data/app/controllers/katello/api/v2/repositories_controller.rb +103 -34
  15. data/app/controllers/katello/api/v2/repository_sets_controller.rb +22 -15
  16. data/app/controllers/katello/api/v2/subscriptions_controller.rb +31 -7
  17. data/app/controllers/katello/api/v2/upstream_subscriptions_controller.rb +93 -0
  18. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +2 -2
  19. data/app/helpers/katello/katello_urls_helper.rb +21 -4
  20. data/app/jobs/create_pulp_disk_space_notifications.rb +4 -0
  21. data/app/jobs/send_expire_soon_notifications.rb +13 -0
  22. data/app/lib/actions/candlepin/import_pool_handler.rb +5 -4
  23. data/app/lib/actions/candlepin/owner/import_products.rb +4 -2
  24. data/app/lib/actions/helpers/notifications.rb +35 -0
  25. data/app/lib/actions/katello/capsule_content/sync.rb +12 -1
  26. data/app/lib/actions/katello/content_view/{capsule_generate_and_sync.rb → capsule_sync.rb} +1 -1
  27. data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -1
  28. data/app/lib/actions/katello/content_view/publish.rb +40 -11
  29. data/app/lib/actions/katello/content_view/remove.rb +2 -2
  30. data/app/lib/actions/katello/environment/publish_repositories.rb +41 -0
  31. data/app/lib/actions/katello/event_queue/poller_thread.rb +10 -8
  32. data/app/lib/actions/katello/host/attach_subscriptions.rb +1 -1
  33. data/app/lib/actions/katello/host/remove_subscriptions.rb +1 -1
  34. data/app/lib/actions/katello/organization/manifest_delete.rb +22 -0
  35. data/app/lib/actions/katello/organization/manifest_import.rb +22 -0
  36. data/app/lib/actions/katello/organization/manifest_refresh.rb +22 -0
  37. data/app/lib/actions/katello/product/create.rb +3 -6
  38. data/app/lib/actions/katello/product/reindex_subscriptions.rb +3 -4
  39. data/app/lib/actions/katello/repository/{capsule_generate_and_sync.rb → capsule_sync.rb} +1 -1
  40. data/app/lib/actions/katello/repository/clone_yum_metadata.rb +2 -1
  41. data/app/lib/actions/katello/repository/create.rb +2 -1
  42. data/app/lib/actions/katello/repository/filtered_index_content.rb +2 -0
  43. data/app/lib/actions/katello/repository/import_upload.rb +38 -6
  44. data/app/lib/actions/katello/repository/remove_content.rb +1 -1
  45. data/app/lib/actions/katello/repository/sync.rb +8 -1
  46. data/app/lib/actions/katello/repository/sync_hook.rb +11 -0
  47. data/app/lib/actions/katello/repository/update.rb +4 -1
  48. data/app/lib/actions/katello/sync_plan/add_products.rb +1 -1
  49. data/app/lib/actions/katello/upstream_subscriptions/bind_entitlement.rb +31 -0
  50. data/app/lib/actions/katello/upstream_subscriptions/bind_entitlements.rb +28 -0
  51. data/app/lib/actions/katello/upstream_subscriptions/remove_entitlement.rb +22 -0
  52. data/app/lib/actions/katello/upstream_subscriptions/remove_entitlements.rb +35 -0
  53. data/app/lib/actions/katello/upstream_subscriptions/update_entitlement.rb +23 -0
  54. data/app/lib/actions/katello/upstream_subscriptions/update_entitlements.rb +37 -0
  55. data/app/lib/actions/middleware/execute_if_contents_changed.rb +1 -1
  56. data/app/lib/actions/pulp/repository/create.rb +3 -0
  57. data/app/lib/actions/pulp/repository/ensure_sync_notification.rb +11 -0
  58. data/app/lib/actions/pulp/repository/import_upload.rb +2 -2
  59. data/app/lib/katello/resources/candlepin.rb +68 -801
  60. data/app/lib/katello/resources/candlepin/activation_key.rb +101 -0
  61. data/app/lib/katello/resources/candlepin/c_p_user.rb +17 -0
  62. data/app/lib/katello/resources/candlepin/candlepin_ping.rb +19 -0
  63. data/app/lib/katello/resources/candlepin/consumer.rb +204 -0
  64. data/app/lib/katello/resources/candlepin/content.rb +36 -0
  65. data/app/lib/katello/resources/candlepin/entitlement.rb +22 -0
  66. data/app/lib/katello/resources/candlepin/environment.rb +44 -0
  67. data/app/lib/katello/resources/candlepin/job.rb +25 -0
  68. data/app/lib/katello/resources/candlepin/owner.rb +130 -0
  69. data/app/lib/katello/resources/candlepin/owner_info.rb +18 -0
  70. data/app/lib/katello/resources/candlepin/pool.rb +39 -0
  71. data/app/lib/katello/resources/candlepin/product.rb +116 -0
  72. data/app/lib/katello/resources/candlepin/proxy.rb +41 -0
  73. data/app/lib/katello/resources/candlepin/subscription.rb +31 -0
  74. data/app/lib/katello/resources/candlepin/upstream_consumer.rb +41 -0
  75. data/app/lib/katello/resources/candlepin/upstream_entitlement.rb +19 -0
  76. data/app/lib/katello/resources/candlepin/upstream_owner.rb +15 -0
  77. data/app/lib/katello/resources/candlepin/upstream_pool.rb +17 -0
  78. data/app/lib/katello/util/data.rb +2 -4
  79. data/app/lib/katello/util/http_proxy.rb +29 -0
  80. data/app/lib/katello/util/model.rb +1 -1
  81. data/app/lib/katello/validators/container_image_name_validator.rb +18 -0
  82. data/app/lib/katello/validators/content_view_environment_org_validator.rb +14 -0
  83. data/app/lib/katello/validators/environment_docker_repositories_validator.rb +71 -0
  84. data/app/lib/katello/validators/gpg_key_content_type_validator.rb +22 -0
  85. data/app/models/katello/activation_key.rb +4 -2
  86. data/app/models/katello/authorization/content_view_history.rb +0 -1
  87. data/app/models/katello/authorization/pool.rb +0 -2
  88. data/app/models/katello/authorization/repository.rb +0 -2
  89. data/app/models/katello/capsule_lifecycle_environment.rb +2 -0
  90. data/app/models/katello/compliance_reason.rb +5 -0
  91. data/app/models/katello/concerns/content_facet_host_extensions.rb +5 -1
  92. data/app/models/katello/concerns/organization_extensions.rb +22 -0
  93. data/app/models/katello/concerns/smart_proxy_extensions.rb +3 -2
  94. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +2 -0
  95. data/app/models/katello/content.rb +5 -0
  96. data/app/models/katello/content_facet_applicable_rpm.rb +1 -0
  97. data/app/models/katello/content_view.rb +50 -82
  98. data/app/models/katello/content_view_component.rb +1 -0
  99. data/app/models/katello/content_view_docker_filter_rule.rb +0 -1
  100. data/app/models/katello/content_view_environment.rb +5 -3
  101. data/app/models/katello/content_view_filter.rb +2 -1
  102. data/app/models/katello/content_view_history.rb +3 -0
  103. data/app/models/katello/content_view_puppet_environment.rb +12 -0
  104. data/app/models/katello/content_view_puppet_module.rb +1 -0
  105. data/app/models/katello/content_view_version.rb +18 -1
  106. data/app/models/katello/docker_manifest.rb +2 -1
  107. data/app/models/katello/docker_manifest_list.rb +2 -1
  108. data/app/models/katello/docker_meta_tag.rb +22 -1
  109. data/app/models/katello/erratum.rb +17 -5
  110. data/app/models/katello/event.rb +2 -0
  111. data/app/models/katello/glue/candlepin/activation_key.rb +2 -2
  112. data/app/models/katello/glue/candlepin/candlepin_object.rb +7 -6
  113. data/app/models/katello/glue/candlepin/owner.rb +4 -3
  114. data/app/models/katello/glue/candlepin/pool.rb +51 -20
  115. data/app/models/katello/glue/candlepin/product.rb +3 -2
  116. data/app/models/katello/glue/candlepin/subscription.rb +16 -35
  117. data/app/models/katello/glue/pulp/repo.rb +26 -6
  118. data/app/models/katello/glue/pulp/repos.rb +6 -3
  119. data/app/models/katello/gpg_key.rb +29 -4
  120. data/app/models/katello/host/content_facet.rb +5 -3
  121. data/app/models/katello/host/subscription_facet.rb +55 -23
  122. data/app/models/katello/host_collection.rb +1 -0
  123. data/app/models/katello/host_collection_hosts.rb +1 -1
  124. data/app/models/katello/installed_package.rb +4 -0
  125. data/app/models/katello/installed_product.rb +33 -0
  126. data/app/models/katello/key_host_collection.rb +2 -2
  127. data/app/models/katello/kt_environment.rb +8 -0
  128. data/app/models/katello/ostree_branch.rb +1 -1
  129. data/app/models/katello/ping.rb +1 -0
  130. data/app/models/katello/pool.rb +13 -7
  131. data/app/models/katello/pool_product.rb +6 -0
  132. data/app/models/katello/product.rb +16 -6
  133. data/app/models/katello/product_content.rb +4 -0
  134. data/app/models/katello/pulp_task_status.rb +0 -46
  135. data/app/models/katello/repository.rb +96 -19
  136. data/app/models/katello/repository_docker_manifest.rb +1 -1
  137. data/app/models/katello/repository_docker_manifest_list.rb +1 -1
  138. data/app/models/katello/repository_ostree_branch.rb +1 -1
  139. data/app/models/katello/rhsm_fact_importer.rb +2 -17
  140. data/app/models/katello/subscription.rb +5 -5
  141. data/app/models/katello/subscription_facet_installed_product.rb +6 -0
  142. data/app/models/katello/subscription_facet_pool.rb +2 -0
  143. data/app/models/katello/sync_plan.rb +1 -0
  144. data/app/models/katello/upstream_pool.rb +112 -0
  145. data/app/models/setting/content.rb +11 -7
  146. data/app/services/katello/candlepin/consumer.rb +9 -2
  147. data/app/services/katello/candlepin/message_handler.rb +18 -35
  148. data/app/services/katello/candlepin/pool_service.rb +17 -0
  149. data/app/services/katello/event_queue.rb +11 -6
  150. data/app/services/katello/pulp/server.rb +3 -1
  151. data/app/services/katello/registration_manager.rb +9 -2
  152. data/app/services/katello/repository_type_manager.rb +2 -1
  153. data/app/services/katello/ui_notifications/abstract_notification.rb +29 -0
  154. data/app/services/katello/ui_notifications/content_view/auto_publish_failure.rb +22 -0
  155. data/app/services/katello/ui_notifications/pulp/proxy_disk_space.rb +3 -4
  156. data/app/services/katello/ui_notifications/subscriptions/expire_soon.rb +65 -0
  157. data/app/services/katello/ui_notifications/subscriptions/manifest_delete_error.rb +13 -0
  158. data/app/services/katello/ui_notifications/subscriptions/manifest_delete_success.rb +13 -0
  159. data/app/services/katello/ui_notifications/subscriptions/manifest_import_error.rb +13 -0
  160. data/app/services/katello/ui_notifications/subscriptions/manifest_import_success.rb +13 -0
  161. data/app/services/katello/ui_notifications/subscriptions/manifest_refresh_error.rb +13 -0
  162. data/app/services/katello/ui_notifications/subscriptions/manifest_refresh_success.rb +13 -0
  163. data/app/services/katello/ui_notifications/task_notification.rb +26 -0
  164. data/app/views/foreman/job_templates/install_errata.erb +7 -2
  165. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +18 -0
  166. data/app/views/foreman/job_templates/install_group_-_katello_ansible_default.erb +16 -0
  167. data/app/views/foreman/job_templates/install_package_-_katello_ansible_default.erb +16 -0
  168. data/app/views/foreman/job_templates/remove_group_-_katello_ansible_default.erb +16 -0
  169. data/app/views/foreman/job_templates/remove_package_-_katello_ansible_default.erb +16 -0
  170. data/app/views/foreman/job_templates/restart_services_-_katello_ansible_default.erb +20 -0
  171. data/app/views/foreman/job_templates/update_group_-_katello_ansible_default.erb +16 -0
  172. data/app/views/foreman/job_templates/update_package_-_katello_ansible_default.erb +16 -0
  173. data/app/views/foreman/smart_proxies/_content_tab.html.erb +1 -1
  174. data/app/views/katello/api/v2/content_credentials/index.json.rabl +3 -0
  175. data/app/views/katello/api/v2/content_credentials/show.json.rabl +101 -0
  176. data/app/views/katello/api/v2/content_view_histories/show.json.rabl +13 -1
  177. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  178. data/app/views/katello/api/v2/environments/show.json.rabl +1 -0
  179. data/app/views/katello/api/v2/errata/{available_errata.rabl → available_errata.json.rabl} +0 -0
  180. data/app/views/katello/api/v2/errata/show.json.rabl +4 -0
  181. data/app/views/katello/api/v2/products/_product_content.json.rabl +6 -6
  182. data/app/views/katello/api/v2/products/base.json.rabl +3 -0
  183. data/app/views/katello/api/v2/products/show.json.rabl +12 -0
  184. data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
  185. data/app/views/katello/api/v2/repositories/show.json.rabl +19 -5
  186. data/app/views/katello/api/v2/subscription_facet/show.json.rabl +10 -14
  187. data/app/views/katello/api/v2/subscriptions/base.json.rabl +2 -1
  188. data/app/views/katello/api/v2/upstream_subscriptions/base.json.rabl +18 -0
  189. data/app/views/katello/api/v2/upstream_subscriptions/index.json.rabl +7 -0
  190. data/app/views/katello/sync_management/_products.html.erb +1 -1
  191. data/config/katello.yaml.example +10 -0
  192. data/config/routes.rb +3 -14
  193. data/config/routes/api/rhsm.rb +1 -0
  194. data/config/routes/api/v2.rb +16 -0
  195. data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +2 -1
  196. data/db/migrate/20161214151548_move_content_source_id_to_content_facets.rb +2 -2
  197. data/db/migrate/20171110082124_add_ssl_certs_to_products_and_repos.rb +42 -0
  198. data/db/migrate/20171214050230_add_auto_publish_to_content_views.rb +5 -0
  199. data/db/migrate/20180117202932_sub_facet_add_installed_products.rb +20 -0
  200. data/db/migrate/20180119152210_add_compliance_reasons.rb +11 -0
  201. data/db/migrate/20180207232901_add_triggered_by_to_content_view_history.rb +7 -0
  202. data/db/migrate/20180218191449_add_manifest_refreshed_at_to_organization.rb +9 -0
  203. data/db/migrate/20180227094827_use_uuid_for_task_id.rb +26 -0
  204. data/db/migrate/20180323175122_add_registry_name_pattern_to_environment.rb +11 -0
  205. data/db/migrate/20180326145716_subscription_cp_id_change.rb +10 -0
  206. data/db/migrate/20180326150339_move_stacking_id.rb +25 -0
  207. data/db/migrate/20180326190408_move_subscription_products.rb +75 -0
  208. data/db/migrate/20180402160223_clean_up_force_post_sync_action_setting.rb +5 -0
  209. data/db/migrate/20180410140909_add_organization_id_to_pool.rb +15 -0
  210. data/db/migrate/20180413153126_content_facet_applicable_rpms_index.rb +5 -0
  211. data/db/migrate/20180417031215_add_ignorable_content_to_repository.rb +5 -0
  212. data/db/migrate/20180521200848_drop_repo_rpms_timestamp_not_null.rb +18 -0
  213. data/db/seeds.d/109-katello-notification-blueprints.rb +42 -0
  214. data/db/seeds.d/110-content-view-autopublish.rb +15 -0
  215. data/db/seeds.d/75-job_templates.rb +3 -1
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +1 -1
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details-info.controller.js +34 -3
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +1 -0
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +3 -1
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -1
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +2 -2
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html +2 -2
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credential.factory.js +83 -0
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{gpg-keys/gpg-keys.controller.js → content-credentials/content-credentials.controller.js} +8 -8
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{gpg-keys/gpg-keys.module.js → content-credentials/content-credentials.module.js} +3 -3
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-credentials.routes.js +76 -0
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/content-type.filter.js +25 -0
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{gpg-keys/details/gpg-key-details-info.controller.js → content-credentials/details/content-credential-details-info.controller.js} +10 -10
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-details.controller.js +48 -0
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js +36 -0
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js +36 -0
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-details.html +36 -0
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{gpg-keys/details/views/gpg-key-info.html → content-credentials/details/views/content-credential-info.html} +21 -12
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{gpg-keys/details/views/gpg-key-products.html → content-credentials/details/views/content-credential-products.html} +6 -2
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{gpg-keys/details/views/gpg-key-repositories.html → content-credentials/details/views/content-credential-repositories.html} +6 -4
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/new-content-credential.controller.js +39 -0
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html +53 -0
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/views/content-credentials.html +55 -0
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +31 -19
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-host-collections-modal.controller.js +0 -1
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-packages-modal.controller.js +4 -1
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-environment-modal.html +2 -2
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +108 -1
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-host-collections-modal.html +2 -2
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +2 -2
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html +1 -1
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +3 -3
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +9 -9
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +1 -1
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +1 -1
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-subscriptions.controller.js +1 -2
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-subscriptions.controller.js +1 -1
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +1 -1
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +4 -4
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-repository-sets.html +1 -1
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +1 -1
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register.html +14 -4
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-available-content-views.controller.js +7 -4
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-deb-repositories.controller.js +4 -2
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-docker-repositories.controller.js +5 -3
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-file-repositories.controller.js +4 -2
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-ostree-repositories.controller.js +5 -3
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-repositories.controller.js +4 -2
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-deb-repositories-list.controller.js +4 -2
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +4 -2
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-docker-repositories-list.controller.js +4 -2
  267. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-file-repositories-list.controller.js +4 -2
  268. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-ostree-repositories-list.controller.js +4 -2
  269. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories-list.controller.js +4 -2
  270. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +5 -3
  271. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +8 -9
  272. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-helper.service.js +1 -1
  273. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/new-filter.controller.js +1 -1
  274. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata.html +6 -2
  275. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/docker-filter.html +1 -1
  276. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html +1 -1
  277. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +2 -2
  278. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-modules.controller.js +5 -1
  279. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +8 -7
  280. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +3 -3
  281. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +14 -0
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +12 -4
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +16 -0
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +2 -1
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +2 -2
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +2 -2
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-details.html +1 -1
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +1 -1
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-info.html +1 -1
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +2 -2
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +4 -4
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +1 -1
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment.controller.js +3 -2
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-details.html +8 -0
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html +9 -5
  296. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +2 -2
  297. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment.html +2 -1
  298. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +18 -6
  299. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-content-hosts.controller.js +22 -8
  300. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-repositories.controller.js +18 -2
  301. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +3 -3
  302. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-repositories.html +1 -1
  303. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/incremental-update.service.js +3 -2
  304. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +17 -6
  305. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +2 -2
  306. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/README +4 -0
  307. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +3465 -1541
  308. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +10 -10
  309. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/katello-features.run.js +5 -5
  310. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +1 -1
  311. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branch-repositories.controller.js +18 -2
  312. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-repositories.html +1 -1
  313. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-repositories.controller.js +18 -2
  314. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +2 -2
  315. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-repositories.html +1 -1
  316. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package.html +2 -2
  317. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.routes.js +1 -1
  318. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages.html +1 -1
  319. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details-info.controller.js +32 -5
  320. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +34 -13
  321. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +16 -0
  322. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +15 -2
  323. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +42 -4
  324. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-debs.html +2 -2
  325. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifest-lists.html +2 -2
  326. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +7 -7
  327. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-tags.html +47 -0
  328. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-files.html +1 -1
  329. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +1 -1
  330. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +10 -8
  331. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +43 -5
  332. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +11 -2
  333. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +39 -0
  334. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +6 -6
  335. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/yum-content-units.service.js +24 -0
  336. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-info.html +24 -0
  337. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-create.controller.js +7 -7
  338. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +1 -1
  339. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +3 -3
  340. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/product-form.controller.js +7 -7
  341. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new-form.html +29 -2
  342. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +9 -3
  343. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.module.js +1 -1
  344. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +2 -1
  345. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/subscription-details.controller.js +1 -1
  346. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/manifest-import.controller.js +12 -3
  347. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-delete-modal.html +1 -1
  348. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +2 -2
  349. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task.factory.js +4 -7
  350. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-nutupane.factory.js +6 -1
  351. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-table.directive.js +6 -3
  352. data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -1
  353. data/lib/katello/apipie/validators.rb +0 -56
  354. data/lib/katello/engine.rb +6 -43
  355. data/lib/katello/permission_creator.rb +31 -4
  356. data/lib/katello/plugin.rb +124 -73
  357. data/lib/katello/scheduled_jobs.rb +10 -4
  358. data/lib/katello/tasks/job_templates.rake +16 -0
  359. data/lib/katello/tasks/reset.rake +0 -3
  360. data/lib/katello/tasks/upgrades/3.6/import_backend_consumer_attributes.rake +32 -0
  361. data/lib/katello/tasks/upgrades/3.7/make_all_ks_repos_bootable.rake +11 -0
  362. data/lib/katello/version.rb +1 -1
  363. data/locale/action_names.rb +52 -48
  364. data/locale/katello.pot +3136 -1999
  365. data/package.json +83 -0
  366. data/webpack/__mocks__/foremanReact/common/helpers.js +5 -0
  367. data/webpack/__mocks__/foremanReact/components/common/table.js +6 -0
  368. data/webpack/__mocks__/react-bootstrap-tooltip-button.js +6 -0
  369. data/webpack/components/MultiSelect/index.js +35 -0
  370. data/webpack/components/PaginationRow/PaginationRow.test.js +25 -0
  371. data/webpack/components/PaginationRow/__snapshots__/PaginationRow.test.js.snap +35 -0
  372. data/webpack/components/PaginationRow/index.js +90 -0
  373. data/webpack/components/Search/Search.test.js +20 -0
  374. data/webpack/components/Search/__snapshots__/Search.test.js.snap +18 -0
  375. data/webpack/components/Search/helpers.js +6 -0
  376. data/webpack/components/Search/index.js +86 -0
  377. data/webpack/containers/Application/Routes.js +11 -0
  378. data/webpack/containers/Application/config.js +21 -0
  379. data/webpack/containers/Application/index.js +39 -0
  380. data/webpack/containers/Application/overrides.scss +38 -0
  381. data/webpack/index.js +18 -0
  382. data/webpack/mockRequest.js +32 -0
  383. data/webpack/move_to_foreman/Settings/SettingsActions.js +28 -0
  384. data/webpack/move_to_foreman/Settings/SettingsConstants.js +3 -0
  385. data/webpack/move_to_foreman/Settings/__tests__/SettingsActions.test.js +41 -0
  386. data/webpack/move_to_foreman/Settings/__tests__/settings.fixtures.js +34 -0
  387. data/webpack/move_to_foreman/__mocks__/foreman_toast_notifications.js +3 -0
  388. data/webpack/move_to_foreman/common/helpers.js +36 -0
  389. data/webpack/move_to_foreman/components/common/ConfirmDialog/ConfirmDialog.js +50 -0
  390. data/webpack/move_to_foreman/components/common/ConfirmDialog/__tests__/ConfirmDialog.test.js +40 -0
  391. data/webpack/move_to_foreman/components/common/ConfirmDialog/__tests__/__snapshots__/ConfirmDialog.test.js.snap +125 -0
  392. data/webpack/move_to_foreman/components/common/ConfirmDialog/index.js +3 -0
  393. data/webpack/move_to_foreman/components/common/Dialog/Dialog.js +65 -0
  394. data/webpack/move_to_foreman/components/common/Dialog/__tests__/Dialog.test.js +61 -0
  395. data/webpack/move_to_foreman/components/common/Dialog/__tests__/__snapshots__/Dialog.test.js.snap +349 -0
  396. data/webpack/move_to_foreman/components/common/Dialog/index.js +3 -0
  397. data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.js +43 -0
  398. data/webpack/move_to_foreman/components/common/ModalProgressBar/ModalProgressBar.scss +15 -0
  399. data/webpack/move_to_foreman/components/common/ModalProgressBar/__tests__/ModalProgressBar.test.js +22 -0
  400. data/webpack/move_to_foreman/components/common/ModalProgressBar/__tests__/__snapshots__/ModalProgressBar.test.js.snap +60 -0
  401. data/webpack/move_to_foreman/components/common/ModalProgressBar/index.js +4 -0
  402. data/webpack/move_to_foreman/components/common/emptyState/index.js +49 -0
  403. data/webpack/move_to_foreman/components/common/table/index.js +88 -0
  404. data/webpack/move_to_foreman/foreman_toast_notifications.js +22 -0
  405. data/webpack/move_to_pf/TypeAhead/TypeAhead.js +125 -0
  406. data/webpack/move_to_pf/TypeAhead/TypeAhead.scss +7 -0
  407. data/webpack/move_to_pf/TypeAhead/TypeAheadInput.js +47 -0
  408. data/webpack/move_to_pf/TypeAhead/TypeAheadItems.js +60 -0
  409. data/webpack/move_to_pf/TypeAhead/helpers.js +5 -0
  410. data/webpack/move_to_pf/react-bootstrap-select/index.js +65 -0
  411. data/webpack/redux/actions/RedHatRepositories/enabled.js +53 -0
  412. data/webpack/redux/actions/RedHatRepositories/helpers.js +38 -0
  413. data/webpack/redux/actions/RedHatRepositories/repositorySetRepositories.js +50 -0
  414. data/webpack/redux/actions/RedHatRepositories/sets.js +42 -0
  415. data/webpack/redux/consts.js +18 -0
  416. data/webpack/redux/index.js +9 -0
  417. data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +149 -0
  418. data/webpack/redux/reducers/RedHatRepositories/enabled.js +80 -0
  419. data/webpack/redux/reducers/RedHatRepositories/enabled.test.js +36 -0
  420. data/webpack/redux/reducers/RedHatRepositories/filters.fixtures.js +5 -0
  421. data/webpack/redux/reducers/RedHatRepositories/index.js +10 -0
  422. data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.fixtures.js +135 -0
  423. data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.js +97 -0
  424. data/webpack/redux/reducers/RedHatRepositories/repositorySetRepositories.test.js +66 -0
  425. data/webpack/redux/reducers/RedHatRepositories/sets.fixtures.js +123 -0
  426. data/webpack/redux/reducers/RedHatRepositories/sets.js +41 -0
  427. data/webpack/redux/reducers/RedHatRepositories/sets.test.js +36 -0
  428. data/webpack/redux/reducers/index.js +14 -0
  429. data/webpack/scenes/Organizations/OrganizationActions.js +60 -0
  430. data/webpack/scenes/Organizations/OrganizationConstants.js +7 -0
  431. data/webpack/scenes/Organizations/OrganizationReducer.js +32 -0
  432. data/webpack/scenes/Organizations/__tests__/OrganizationActions.test.js +59 -0
  433. data/webpack/scenes/Organizations/__tests__/OrganizationReducer.test.js +56 -0
  434. data/webpack/scenes/Organizations/__tests__/organizations.fixtures.js +99 -0
  435. data/webpack/scenes/RedHatRepositories/components/EnabledRepository.js +114 -0
  436. data/webpack/scenes/RedHatRepositories/components/EnabledRepository.stories.js +13 -0
  437. data/webpack/scenes/RedHatRepositories/components/RepositorySet.js +35 -0
  438. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepositories.js +64 -0
  439. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository.js +127 -0
  440. data/webpack/scenes/RedHatRepositories/components/RepositoryTypeIcon.js +33 -0
  441. data/webpack/scenes/RedHatRepositories/components/Search.js +91 -0
  442. data/webpack/scenes/RedHatRepositories/components/SearchBar.js +145 -0
  443. data/webpack/scenes/RedHatRepositories/components/__tests__/RepositoryTypeIcon.test.js +28 -0
  444. data/webpack/scenes/RedHatRepositories/components/__tests__/__snapshots__/RepositoryTypeIcon.test.js.snap +143 -0
  445. data/webpack/scenes/RedHatRepositories/helpers.js +72 -0
  446. data/webpack/scenes/RedHatRepositories/index.js +91 -0
  447. data/webpack/scenes/RedHatRepositories/index.scss +63 -0
  448. data/webpack/scenes/Subscriptions/EntitlementsInlineEditFormatter.js +87 -0
  449. data/webpack/scenes/Subscriptions/Manifest/DeleteManifestModalText.js +22 -0
  450. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +243 -0
  451. data/webpack/scenes/Subscriptions/Manifest/Manifest.scss +3 -0
  452. data/webpack/scenes/Subscriptions/Manifest/ManifestActions.js +114 -0
  453. data/webpack/scenes/Subscriptions/Manifest/ManifestConstants.js +15 -0
  454. data/webpack/scenes/Subscriptions/Manifest/ManifestHistoryReducer.js +34 -0
  455. data/webpack/scenes/Subscriptions/Manifest/ManifestHistoryTableSchema.js +46 -0
  456. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +26 -0
  457. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManifestActions.test.js +113 -0
  458. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManifestHistoryReducer.test.js +36 -0
  459. data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +363 -0
  460. data/webpack/scenes/Subscriptions/Manifest/__tests__/manifest.fixtures.js +216 -0
  461. data/webpack/scenes/Subscriptions/Manifest/index.js +28 -0
  462. data/webpack/scenes/Subscriptions/SubscriptionActions.js +119 -0
  463. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +27 -0
  464. data/webpack/scenes/Subscriptions/SubscriptionHelpers.js +3 -0
  465. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +123 -0
  466. data/webpack/scenes/Subscriptions/SubscriptionValidations.js +25 -0
  467. data/webpack/scenes/Subscriptions/Subscriptions.scss +14 -0
  468. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +275 -0
  469. data/webpack/scenes/Subscriptions/SubscriptionsTable.js +336 -0
  470. data/webpack/scenes/Subscriptions/SubscriptionsTableSchema.js +117 -0
  471. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsActions.js +61 -0
  472. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsContstants.js +7 -0
  473. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +246 -0
  474. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsReducer.js +59 -0
  475. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsTableSchema.js +120 -0
  476. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsActions.test.js +64 -0
  477. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsPage.test.js +22 -0
  478. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/UpstreamSubscriptionsReducer.test.js +57 -0
  479. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/__snapshots__/UpstreamSubscriptionsPage.test.js.snap +226 -0
  480. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/upstreamSubscriptions.fixtures.js +162 -0
  481. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/index.js +20 -0
  482. data/webpack/scenes/Subscriptions/__tests__/SubscriptionValidations.test.js +66 -0
  483. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +126 -0
  484. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +26 -0
  485. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +67 -0
  486. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsTable.test.js +47 -0
  487. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +198 -0
  488. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +419 -0
  489. data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +364 -0
  490. data/webpack/scenes/Subscriptions/index.js +27 -0
  491. data/webpack/scenes/Tasks/TaskActions.js +75 -0
  492. data/webpack/scenes/Tasks/TaskConstants.js +7 -0
  493. data/webpack/scenes/Tasks/__tests__/TaskActions.test.js +81 -0
  494. data/webpack/scenes/Tasks/__tests__/task.fixtures.js +123 -0
  495. data/webpack/services/api/fixtures.js +353 -0
  496. data/webpack/services/api/index.js +105 -0
  497. data/webpack/services/api/setupMocks.js +17 -0
  498. data/webpack/services/index.js +59 -0
  499. data/webpack/stories/index.js +12 -0
  500. data/webpack/test_setup.js +9 -0
  501. metadata +265 -61
  502. data/app/assets/javascripts/katello/providers/provider_redhat.js +0 -185
  503. data/app/assets/javascripts/katello/providers/redhat/index.js +0 -3
  504. data/app/controllers/katello/products_controller.rb +0 -106
  505. data/app/controllers/katello/providers_controller.rb +0 -64
  506. data/app/helpers/katello/providers_helper.rb +0 -93
  507. data/app/models/katello/subscription_product.rb +0 -6
  508. data/app/views/foreman/unattended/finish-katello.erb +0 -60
  509. data/app/views/foreman/unattended/kickstart-katello-atomic.erb +0 -51
  510. data/app/views/foreman/unattended/kickstart-katello.erb +0 -139
  511. data/app/views/foreman/unattended/snippets/_subscription_manager_registration.erb +0 -18
  512. data/app/views/foreman/unattended/userdata-katello.erb +0 -92
  513. data/app/views/katello/providers/redhat/_enable_errors.html.erb +0 -12
  514. data/app/views/katello/providers/redhat/_errors.html.erb +0 -19
  515. data/app/views/katello/providers/redhat/_repo_sets.html.erb +0 -56
  516. data/app/views/katello/providers/redhat/_repos.html.erb +0 -60
  517. data/app/views/katello/providers/redhat/_tab.html.erb +0 -9
  518. data/app/views/katello/providers/redhat/show.html.erb +0 -35
  519. data/db/seeds.d/103-provisioning_templates.rb +0 -42
  520. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/errata-content-hosts.html +0 -28
  521. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/errata-details.html +0 -59
  522. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-details.controller.js +0 -48
  523. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-products.controller.js +0 -36
  524. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-repositories.controller.js +0 -36
  525. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-details.html +0 -36
  526. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-key.factory.js +0 -43
  527. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.routes.js +0 -76
  528. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/new-gpg-key.controller.js +0 -39
  529. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/new-gpg-key.html +0 -44
  530. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +0 -46
@@ -2,6 +2,15 @@
2
2
  <h4 data-block="modal-header">Content Host Errata Management</h4>
3
3
 
4
4
  <div data-block="modal-body">
5
+ <form id="errataActionForm" name="errataActionForm" class="form" method="post" action="/katello/remote_execution">
6
+ <input type="hidden" name="name" ng-value="errataActionFormValues.errata"/>
7
+ <input type="hidden" name="remote_action" ng-value="errataActionFormValues.remoteAction"/>
8
+ <input type="hidden" name="scoped_search" ng-value="errataActionFormValues.search"/>
9
+ <input type="hidden" name="host_ids" ng-value="errataActionFormValues.hostIds"/>
10
+ <input type="hidden" name="authenticity_token" ng-value="errataActionFormValues.authenticityToken"/>
11
+ <input type="hidden" name="customize" ng-value="errataActionFormValues.customize"/>
12
+ </form>
13
+
5
14
  <div bst-alert="info" ng-show="showConfirm">
6
15
  <span translate>
7
16
  Are you sure you want to apply the {{ table.numSelected }} selected errata to the content hosts chosen?
@@ -18,7 +27,7 @@
18
27
  </div>
19
28
  </div>
20
29
 
21
- <div data-extend-template="layouts/partials/table.html">
30
+ <div ng-show="showTable()" data-extend-template="layouts/partials/table.html">
22
31
  <div data-block="search">
23
32
  <input type="text" class="form-control" stop-event="click"
24
33
  placeholder="{{ 'Filter...' | translate }}"
@@ -44,6 +53,7 @@
44
53
  type="button" id="use-remote-execution">
45
54
  <span class="caret"></span>
46
55
  </button>
56
+
47
57
  <ul uib-dropdown-menu class="dropdown-menu-right" role="menu" aria-labelledby="use-remote-execution">
48
58
  <li role="presentation"><a ng-click="installErrataViaKatelloAgent()" role="menuitem" translate>via Katello agent</a></li>
49
59
  <li role="presentation"><a ng-click="installErrataViaRemoteExecution(false)" role="menuitem" translate>via remote execution</a></li>
@@ -95,6 +105,103 @@
95
105
  </table>
96
106
  </div>
97
107
  </div>
108
+
109
+ <div name="errataDetails" ng-show="showErrata">
110
+ <a ng-click="showErrata = false">
111
+ <i class="fa fa-double-angle-left"></i>
112
+ {{ "Back To Errata List" | translate }}
113
+ </a>
114
+
115
+ <h3>{{ 'Errata Details' | translate }}</h3>
116
+
117
+ <h3>{{ erratum.errata_id }} </h3>
118
+
119
+ <div class="details details-full">
120
+ <section>
121
+
122
+ <div class="detail">
123
+ <span class="info-label" translate>Type</span>
124
+ <span class="info-value">{{ erratum.type }}</span>
125
+ </div>
126
+ <div class="detail">
127
+ <span class="info-label" translate>Title</span>
128
+ <span class="info-value">{{ erratum.title }}</span>
129
+ </div>
130
+ <div class="detail">
131
+ <span class="info-label" translate>Issued</span>
132
+ <span class="info-value">{{ erratum.issued }}</span>
133
+ </div>
134
+ <div class="detail">
135
+ <span class="info-label" translate>Updated</span>
136
+ <span class="info-value">{{ erratum.updated }}</span>
137
+ </div>
138
+ <div class="detail">
139
+ <span class="info-label" translate>Reboot Suggested</span>
140
+ <span class="info-value">{{ erratum.reboot_suggested }}</span>
141
+ </div>
142
+
143
+ <div class="detail">
144
+ <span class="info-label" translate>Description</span>
145
+ <span class="info-value">
146
+ <p ng-repeat="paragraph in erratum.description.split('\n\n')">
147
+ {{ paragraph }}
148
+ </p>
149
+ </span>
150
+ </div>
151
+
152
+ <div class="detail">
153
+ <span class="info-label" translate>Solution</span>
154
+ <span class="info-value">
155
+ <p ng-repeat="paragraph in erratum.solution.split('\n\n')">
156
+ {{ paragraph }}
157
+ </p>
158
+ </span>
159
+ </div>
160
+
161
+ <div class="detail">
162
+ <span class="info-label" translate>Packages</span>
163
+ <span class="info-value">
164
+ <ul>
165
+ <li ng-repeat="package in erratum.packages">
166
+ {{ package }}
167
+ </li>
168
+ </ul>
169
+ </span>
170
+ </div>
171
+
172
+ </section>
173
+ </div>
174
+ </div>
175
+
176
+ <div name="errataHostsDetails" ng-show="showHosts">
177
+ <a ng-click="showHosts = false">
178
+ <i class="fa fa-double-angle-left"></i>
179
+ {{ "Back To Errata List" | translate }}
180
+ </a>
181
+
182
+ <h3 translate>Applicable hosts for {{ erratum.errata_id }} </h3>
183
+
184
+ <div class="details details-full">
185
+ <section>
186
+ <table class="table">
187
+ <thead>
188
+ <tr>
189
+ <th translate>
190
+ Name
191
+ </th>
192
+ </tr>
193
+ </thead>
194
+
195
+ <tbody>
196
+ <tr ng-repeat="host in erratum.applicable_hosts">
197
+ <td>{{ host.name }}</td>
198
+ </tr>
199
+ </tbody>
200
+ </table>
201
+ </section>
202
+ </div>
203
+ </div>
204
+
98
205
  </div>
99
206
 
100
207
  <div data-block="modal-footer">
@@ -66,12 +66,12 @@
66
66
  <tbody>
67
67
  <tr bst-table-row ng-repeat="hostCollection in table.rows" row-select="hostCollection">
68
68
  <td bst-table-cell>
69
- <a ui-sref="host-collection.info({hostCollectionId: hostCollection.id})">
69
+ <a ng-click="ok(); " ui-sref="host-collection.info({hostCollectionId: hostCollection.id})" >
70
70
  {{ hostCollection.name }}
71
71
  </a>
72
72
  </td>
73
73
  <td bst-table-cell>
74
- <a ui-sref="host-collection.content-hosts({hostCollectionId: hostCollection.id})">
74
+ <a ng-click="ok();" ui-sref="host-collection.hosts.list({hostCollectionId: hostCollection.id})">
75
75
  {{ hostCollection.total_hosts }}
76
76
  </a>
77
77
  </td>
@@ -30,14 +30,14 @@
30
30
  </ul>
31
31
  </span>
32
32
 
33
- <div ng-form id="packageActionForm" name="packageActionForm" class="form" method="post" action="/katello/remote_execution">
33
+ <form id="packageActionForm" name="packageActionForm" class="form" method="post" action="/katello/remote_execution">
34
34
  <input type="hidden" name="name" ng-value="content.content"/>
35
35
  <input type="hidden" name="remote_action" ng-value="packageActionFormValues.remoteAction"/>
36
36
  <input type="hidden" name="scoped_search" ng-value="packageActionFormValues.search"/>
37
37
  <input type="hidden" name="host_ids" ng-value="packageActionFormValues.hostIds"/>
38
38
  <input type="hidden" name="authenticity_token" ng-value="packageActionFormValues.authenticityToken"/>
39
39
  <input type="hidden" name="customize" ng-value="packageActionFormValues.customize"/>
40
- </div>
40
+ </form>
41
41
 
42
42
  <div ng-form name="systemContentForm" class="form" ng-hide="content.workingMode || denied('edit_hosts')" novalidate>
43
43
  <div>
@@ -80,7 +80,7 @@
80
80
  <tr bst-table-row ng-repeat-start="(name, subscriptions) in groupedSubscriptions">
81
81
  <td class="row-select"></td>
82
82
  <td colspan="8">
83
- <a ui-sref="subscription.info({subscriptionId: subscription.id})" class="confined-text">
83
+ <a ng-click="ok();" ui-sref="subscription.info({subscriptionId: subscription.id})" class="confined-text">
84
84
  {{ name }}
85
85
  </a>
86
86
  </td>
@@ -47,7 +47,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostErrataController'
47
47
  };
48
48
 
49
49
  $scope.selectedErrataOption = 'current';
50
- $scope.errataOptions = [{name: "Current Environment", label: 'current'}, {name: 'foo', label: 'bar'}];
50
+ $scope.errataOptions = [{name: "Current Lifecycle Environment", label: 'current'}, {name: 'foo', label: 'bar'}];
51
51
 
52
52
  $scope.table.initialLoad = false;
53
53
 
@@ -57,12 +57,12 @@ angular.module('Bastion.content-hosts').controller('ContentHostErrataController'
57
57
  previousEnv;
58
58
 
59
59
  if (host.hasContent()) {
60
- currentEnv = translate("Current Environment (%e/%cv)").replace("%e", host.content_facet_attributes.lifecycle_environment.name).replace("%cv", host.content_facet_attributes.content_view_name);
60
+ currentEnv = translate("Current Lifecycle Environment (%e/%cv)").replace("%e", host.content_facet_attributes.lifecycle_environment.name).replace("%cv", host.content_facet_attributes.content_view_name);
61
61
  $scope.errataOptions = [{name: currentEnv, label: 'current', order: 3}];
62
62
 
63
63
  if (!host['content_facet_attributes']['lifecycle_environment_library?']) {
64
64
  Environment.get({id: host['content_facet_attributes'].lifecycle_environment.id}).$promise.then(function (env) {
65
- previousEnv = translate("Previous Environment (%e/%cv)").replace('%e', env.prior.name).replace("%cv", host.content_facet_attributes.content_view_name);
65
+ previousEnv = translate("Previous Lifecycle Environment (%e/%cv)").replace('%e', env.prior.name).replace("%cv", host.content_facet_attributes.content_view_name);
66
66
  $scope.errataOptions.push({name: previousEnv,
67
67
  label: 'prior', order: 2, 'content_view_id': host.content_facet_attributes.content_view_id, 'environment_id': env.prior.id});
68
68
 
@@ -31,27 +31,27 @@
31
31
  </p>
32
32
  </div>
33
33
 
34
+ <form id="errataActionForm" method="post" action="/katello/remote_execution">
35
+ <input type="hidden" name="remote_action" value="errata_install"/>
36
+ <input type="hidden" name="name" ng-value="errataActionFormValues.errata"/>
37
+ <input type="hidden" name="host_ids" ng-value="errataActionFormValues.hostIds"/>
38
+ <input type="hidden" name="customize" ng-value="errataActionFormValues.customize"/>
39
+ <input type="hidden" name="authenticity_token" ng-value="errataActionFormValues.authenticityToken"/>
40
+ </form>
41
+
34
42
  <div data-extend-template="layouts/partials/table.html">
35
43
  <span data-block="search-filter" bst-feature-flag="remote_actions">
36
44
  <label class="sr-only" translate>
37
45
  Limit to environment
38
46
  </label>
39
47
  <select class="form-control"
40
- placeholder="{{ 'Limit to Environment' | translate }}"
48
+ placeholder="{{ 'Limit to Lifecycle Environment' | translate }}"
41
49
  ng-model="selectedErrataOption"
42
50
  ng-change="refreshErrata(selectedErrataOption)"
43
51
  ng-options="option.label as option.name for option in errataOptions | orderBy: 'order'">
44
52
  </select>
45
53
  </span>
46
54
 
47
- <form id="errataActionForm" method="post" action="/katello/remote_execution">
48
- <input type="hidden" name="remote_action" value="errata_install"/>
49
- <input type="hidden" name="name" ng-value="errataActionFormValues.errata"/>
50
- <input type="hidden" name="host_ids" ng-value="errataActionFormValues.hostIds"/>
51
- <input type="hidden" name="customize" ng-value="errataActionFormValues.customize"/>
52
- <input type="hidden" name="authenticity_token" ng-value="errataActionFormValues.authenticityToken"/>
53
- </form>
54
-
55
55
  <span data-block="list-actions" ng-hide="contentHost.readonly">
56
56
  <div bst-modal="applySelected()" model="host">
57
57
  <div data-block="modal-header" translate>Apply Errata to Content Host "{{host.name}}"?</div>
@@ -58,7 +58,7 @@
58
58
 
59
59
  <tbody>
60
60
  <tr bst-table-row ng-repeat="package in table.rows" row-select="package">
61
- <td bst-table-cell>{{ package.nvra }}</td>
61
+ <td bst-table-cell>{{ package.nvrea }}</td>
62
62
  </tr>
63
63
  </tbody>
64
64
  </table>
@@ -42,7 +42,7 @@
42
42
 
43
43
  <tbody>
44
44
  <tr bst-table-row ng-repeat="package in table.rows" row-select="package">
45
- <td bst-table-cell>{{ package.nvra }}</td>
45
+ <td bst-table-cell>{{ package.nvrea }}</td>
46
46
  </tr>
47
47
  </tbody>
48
48
  </table>
@@ -31,7 +31,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostAddSubscriptionsC
31
31
  $scope.nutupane.setSearchKey('subscriptionSearch');
32
32
  $scope.nutupane.masterOnly = true;
33
33
  $scope.table = $scope.nutupane.table;
34
-
34
+ $scope.contextAdd = true;
35
35
  $scope.isAdding = false;
36
36
  $scope.groupedSubscriptions = {};
37
37
 
@@ -40,7 +40,6 @@ angular.module('Bastion.content-hosts').controller('ContentHostAddSubscriptionsC
40
40
  });
41
41
 
42
42
  $scope.getAmountSelectorValues = SubscriptionsHelper.getAmountSelectorValues;
43
-
44
43
  $scope.showMatchHost = false;
45
44
  $scope.showMatchInstalled = false;
46
45
  $scope.showNoOverlap = false;
@@ -29,7 +29,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostSubscriptionsCont
29
29
  $scope.table = $scope.nutupane.table;
30
30
  $scope.nutupane.masterOnly = true;
31
31
  $scope.isRemoving = false;
32
-
32
+ $scope.contextAdd = false;
33
33
  $scope.groupedSubscriptions = {};
34
34
  $scope.$watch('table.rows', function (rows) {
35
35
  $scope.groupedSubscriptions = SubscriptionsHelper.groupByProductName(rows);
@@ -108,7 +108,7 @@
108
108
  <ul uib-dropdown-menu>
109
109
  <li>
110
110
  <a ui-sref="content-host.packages.actions" translate>
111
- Yum Actions
111
+ Actions
112
112
  </a>
113
113
  </li>
114
114
  <li>
@@ -203,19 +203,19 @@
203
203
  </dd>
204
204
 
205
205
  <dt bst-feature-flag="lifecycle_environments">
206
- <span translate>Environment</span>
206
+ <span translate>Lifecycle Environment</span>
207
207
  </dt>
208
208
  <dd bst-feature-flag="lifecycle_environments">
209
209
  <div bst-alert="info" ng-show="editContentView">
210
210
  <p translate ng-show="contentViews.length === 0">
211
- The host requires being attached to a content view and the environment you have chosen has no content views promoted to it.
211
+ The host requires being attached to a content view and the lifecycle environment you have chosen has no content views promoted to it.
212
212
  See the <a href="/content_views">content views page</a> to manage and promote a content view.
213
213
  </p>
214
214
  <p translate ng-show="contentViews.length !== 0">
215
- You must select a new content view before your change of environment can be saved.
215
+ You must select a new content view before your change of lifecycle environment can be saved.
216
216
  </p>
217
217
  <p translate>
218
- Use the cancel button on content view selection to revert your environment selection.
218
+ Use the cancel button on content view selection to revert your lifecycle environment selection.
219
219
  </p>
220
220
  </div>
221
221
 
@@ -28,7 +28,7 @@
28
28
  </label>
29
29
  <label class="checkbox-inline" title="{{ 'Limit Repository Sets to only those available in this Host\'s Lifecycle Environment' | translate }}">
30
30
  <input type="checkbox" ng-model="contentAccessModes.contentAccessModeEnv" ng-change="toggleFilters()"/>
31
- <span translate>Limit to Environment</span>
31
+ <span translate>Limit to Lifecycle Environment</span>
32
32
  </label>
33
33
  </div>
34
34
 
@@ -77,7 +77,7 @@
77
77
  <span translate>Installable Updates</span>
78
78
  </th>
79
79
  <th bst-table-column="os" sortable><span translate>OS</span></th>
80
- <th bst-table-column="lifecycle_environment" sortable><span sortable translate>Environment</span></th>
80
+ <th bst-table-column="lifecycle_environment" sortable><span sortable translate>Lifecycle Environment</span></th>
81
81
  <th bst-table-column="content_view" sortable><span translate>Content View</span></th>
82
82
  <th bst-table-column="registered_at" sortable><span translate>Registered</span></th>
83
83
  <th bst-table-column="last_checkin" sortable><span translate>Last Checkin</span></th>
@@ -15,17 +15,27 @@
15
15
  </li>
16
16
  <li>
17
17
  <p translate>Install the pre-built bootstrap RPM:</p>
18
- <pre><code>rpm -Uvh http://{{ noCapsulesFound ? katelloHostname : hostname(selectedCapsule.url) }}/pub/{{ consumerCertRPM }}</code></pre>
18
+ <pre><code>rpm -Uvh https://{{ noCapsulesFound ? katelloHostname : hostname(selectedCapsule.url) }}/pub/{{ consumerCertRPM }}</code></pre>
19
19
  </li>
20
20
  <li>
21
- <p translate>Run subscription-manager in a console on the client host. You may use an Activation Key to register:</p>
21
+ <p translate>Register using subscription-manager:</p>
22
+ <p translate>Using an Activation Key:</p>
22
23
  <pre><code>subscription-manager register --org="{{ organization.label }}" --activationkey="&ltActivation Key Name&gt"</code></pre>
23
- <p translate>or authenticate with a username and password:</p>
24
+ <p translate>Using a username and password:</p>
24
25
  <pre><code>subscription-manager register --org="{{ organization.label }}" --environment="Library"</code></pre>
25
26
  </li>
26
27
  <li>
27
- <p translate>Install katello-agent for remote actions and displaying errata information:</p>
28
+ <p translate>Install client package:</p>
29
+
30
+ <p translate>To report package & errata information:</p>
31
+ <pre><code>yum -y install katello-host-tools</code></pre>
32
+
33
+ <p translate>To optionally report tracer information:</p>
34
+ <pre><code>yum -y install katello-host-tools-tracer</code></pre>
35
+
36
+ <p translate>For remote actions and reporting package & errata information:</p>
28
37
  <pre><code>yum -y install katello-agent</code></pre>
38
+ <p translate>Learn more about these packages in the <a href="https://theforeman.org/plugins/katello/">Documentation</a> </p>
29
39
  </li>
30
40
  </ol>
31
41
  </div>
@@ -14,7 +14,7 @@
14
14
  angular.module('Bastion.content-views').controller('ContentViewCompositeAvailableContentViewsController',
15
15
  ['$scope', 'Nutupane', 'CurrentOrganization', 'ContentView', 'ContentViewComponent',
16
16
  function ($scope, Nutupane, CurrentOrganization, ContentView, ContentViewComponent) {
17
- var nutupane, params;
17
+ var nutupane, params, nutupaneParams;
18
18
 
19
19
  params = {
20
20
  'full_result': true,
@@ -23,10 +23,13 @@ angular.module('Bastion.content-views').controller('ContentViewCompositeAvailabl
23
23
  'organization_id': CurrentOrganization
24
24
  };
25
25
 
26
- nutupane = new Nutupane(ContentView, params);
26
+ nutupaneParams = {
27
+ 'disableAutoLoad': true
28
+ };
29
+
30
+ nutupane = new Nutupane(ContentView, params, undefined, nutupaneParams);
27
31
  $scope.controllerName = 'katello_content_views';
28
32
  nutupane.masterOnly = true;
29
- nutupane.table.initialLoad = false;
30
33
  $scope.table = nutupane.table;
31
34
 
32
35
  $scope.contentView.$promise.then(function (contentView) {
@@ -41,7 +44,7 @@ angular.module('Bastion.content-views').controller('ContentViewCompositeAvailabl
41
44
  params['without[]'] = filterIds;
42
45
 
43
46
  nutupane.setParams(params);
44
- nutupane.load(true);
47
+ nutupane.refresh();
45
48
  });
46
49
 
47
50
  $scope.addContentViews = function () {
@@ -14,7 +14,9 @@
14
14
  * Provides UI functionality add deb repositories to a content view
15
15
  */
16
16
  function ContentViewAvailableDebRepositoriesController($scope, Repository, Nutupane, CurrentOrganization, ContentViewRepositoriesUtil) {
17
- var nutupane;
17
+ var nutupane, nutupaneParams = {
18
+ 'disableAutoLoad': true
19
+ };
18
20
 
19
21
  ContentViewRepositoriesUtil($scope);
20
22
 
@@ -25,7 +27,7 @@
25
27
  'content_view_id': $scope.$stateParams.contentViewId,
26
28
  'available_for': 'content_view'
27
29
  },
28
- 'queryUnpaged');
30
+ 'queryUnpaged', nutupaneParams);
29
31
  $scope.controllerName = 'katello_repositories';
30
32
 
31
33
  nutupane.load();
@@ -15,7 +15,9 @@ angular.module('Bastion.content-views').controller('ContentViewAvailableDockerRe
15
15
  ['$scope', 'Repository', 'Nutupane', 'CurrentOrganization', 'ContentViewRepositoriesUtil',
16
16
  function ($scope, Repository, Nutupane, CurrentOrganization, ContentViewRepositoriesUtil) {
17
17
 
18
- var nutupane;
18
+ var nutupane, nutupaneParams = {
19
+ 'disableAutoLoad': true
20
+ };
19
21
 
20
22
  ContentViewRepositoriesUtil($scope);
21
23
 
@@ -26,11 +28,11 @@ angular.module('Bastion.content-views').controller('ContentViewAvailableDockerRe
26
28
  'content_view_id': $scope.$stateParams.contentViewId,
27
29
  'available_for': 'content_view'
28
30
  },
29
- 'queryUnpaged');
31
+ 'queryUnpaged', nutupaneParams);
30
32
  $scope.controllerName = 'katello_repositories';
31
33
 
32
34
  nutupane.masterOnly = true;
33
-
35
+ nutupane.load();
34
36
  $scope.table = nutupane.table;
35
37
 
36
38
  $scope.addRepositories = function (contentView) {