katello 3.3.2 → 3.4.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 (542) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/katello/containers/container.scss +1 -2
  3. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -1
  4. data/app/controllers/katello/api/v2/activation_keys_controller.rb +28 -23
  5. data/app/controllers/katello/api/v2/api_controller.rb +2 -1
  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 +2 -0
  8. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
  9. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +12 -2
  10. data/app/controllers/katello/api/v2/content_views_controller.rb +4 -1
  11. data/app/controllers/katello/api/v2/docker_tags_controller.rb +14 -0
  12. data/app/controllers/katello/api/v2/environments_controller.rb +2 -1
  13. data/app/controllers/katello/api/v2/host_collections_controller.rb +2 -1
  14. data/app/controllers/katello/api/v2/host_packages_controller.rb +1 -0
  15. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +27 -23
  16. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +19 -0
  17. data/app/controllers/katello/api/v2/organizations_controller.rb +8 -4
  18. data/app/controllers/katello/api/v2/package_groups_controller.rb +51 -0
  19. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +15 -1
  20. data/app/controllers/katello/api/v2/repositories_controller.rb +57 -32
  21. data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -0
  22. data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
  23. data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -0
  24. data/app/controllers/katello/concerns/api/v2/content_overrides_controller.rb +39 -0
  25. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +1 -0
  26. data/app/controllers/katello/providers_controller.rb +3 -1
  27. data/app/controllers/katello/sync_management_controller.rb +2 -0
  28. data/app/helpers/katello/errata_mailer_helper.rb +1 -1
  29. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +2 -7
  30. data/app/lib/actions/candlepin/candlepin_listening_service.rb +2 -1
  31. data/app/lib/actions/candlepin/environment/set_content.rb +1 -1
  32. data/app/lib/actions/candlepin/owner/upstream_regenerate_certificates.rb +17 -0
  33. data/app/lib/actions/candlepin/product/content_add.rb +2 -1
  34. data/app/lib/actions/candlepin/product/content_create.rb +3 -1
  35. data/app/lib/actions/candlepin/product/content_destroy.rb +2 -1
  36. data/app/lib/actions/candlepin/product/content_remove.rb +2 -1
  37. data/app/lib/actions/candlepin/product/content_update.rb +3 -1
  38. data/app/lib/actions/candlepin/product/create.rb +12 -1
  39. data/app/lib/actions/candlepin/product/destroy.rb +2 -1
  40. data/app/lib/actions/candlepin/product/update.rb +4 -0
  41. data/app/lib/actions/katello/capsule_content/create_repos.rb +1 -1
  42. data/app/lib/actions/katello/content_view/promote.rb +3 -2
  43. data/app/lib/actions/katello/content_view/promote_to_environment.rb +3 -2
  44. data/app/lib/actions/katello/content_view/publish.rb +3 -2
  45. data/app/lib/actions/katello/content_view_version/destroy.rb +7 -1
  46. data/app/lib/actions/katello/content_view_version/incremental_update.rb +1 -1
  47. data/app/lib/actions/katello/content_view_version/republish_repositories.rb +40 -0
  48. data/app/lib/actions/katello/host/destroy.rb +1 -0
  49. data/app/lib/actions/katello/host/erratum/install.rb +13 -4
  50. data/app/lib/actions/katello/host/hypervisors_update.rb +3 -2
  51. data/app/lib/actions/katello/host/register.rb +10 -4
  52. data/app/lib/actions/katello/host/remove_subscriptions.rb +14 -12
  53. data/app/lib/actions/katello/host/update.rb +9 -7
  54. data/app/lib/actions/katello/host/update_content_overrides.rb +43 -0
  55. data/app/lib/actions/katello/organization/destroy.rb +1 -1
  56. data/app/lib/actions/katello/organization/manifest_refresh.rb +3 -0
  57. data/app/lib/actions/katello/product/content_create.rb +3 -0
  58. data/app/lib/actions/katello/product/content_destroy.rb +2 -0
  59. data/app/lib/actions/katello/product/create.rb +1 -2
  60. data/app/lib/actions/katello/product/destroy.rb +3 -2
  61. data/app/lib/actions/katello/repository/check_matching_content.rb +49 -0
  62. data/app/lib/actions/katello/repository/clone_to_environment.rb +3 -2
  63. data/app/lib/actions/katello/repository/clone_yum_content.rb +17 -1
  64. data/app/lib/actions/katello/repository/create.rb +4 -1
  65. data/app/lib/actions/katello/repository/destroy_package_group.rb +26 -0
  66. data/app/lib/actions/katello/repository/discover.rb +8 -3
  67. data/app/lib/actions/katello/repository/errata_mail.rb +1 -1
  68. data/app/lib/actions/katello/repository/finish_upload.rb +6 -2
  69. data/app/lib/actions/katello/repository/import_upload.rb +30 -7
  70. data/app/lib/actions/katello/repository/index_content.rb +2 -1
  71. data/app/lib/actions/katello/repository/metadata_generate.rb +19 -5
  72. data/app/lib/actions/katello/repository/remove_content.rb +7 -4
  73. data/app/lib/actions/katello/repository/sync.rb +28 -14
  74. data/app/lib/actions/katello/repository/update.rb +1 -0
  75. data/app/lib/actions/katello/repository/upload_package_group.rb +34 -0
  76. data/app/lib/actions/katello/repository_set/scan_cdn.rb +2 -4
  77. data/app/lib/actions/middleware/skip_if_matching_content.rb +24 -0
  78. data/app/lib/actions/pulp/abstract.rb +2 -2
  79. data/app/lib/actions/pulp/consumer/generate_applicability.rb +5 -1
  80. data/app/lib/actions/pulp/consumer/sync_capsule.rb +10 -0
  81. data/app/lib/actions/pulp/content_view_puppet_environment/index_content.rb +5 -3
  82. data/app/lib/actions/pulp/repository/copy_errata.rb +4 -0
  83. data/app/lib/actions/pulp/repository/create.rb +6 -1
  84. data/app/lib/actions/pulp/repository/distributor_publish.rb +3 -0
  85. data/app/lib/actions/pulp/repository/download.rb +16 -0
  86. data/app/lib/actions/pulp/repository/import_upload.rb +2 -1
  87. data/app/lib/actions/pulp/repository/presenters/{file_presenter.rb → file_unit_presenter.rb} +0 -0
  88. data/app/lib/actions/pulp/repository/presenters/ostree_presenter.rb +16 -3
  89. data/app/lib/actions/pulp/repository/remove_errata.rb +4 -0
  90. data/app/lib/actions/pulp/repository/sync.rb +3 -3
  91. data/app/lib/katello/errors.rb +2 -0
  92. data/app/lib/katello/repo_discovery.rb +33 -8
  93. data/app/lib/katello/resources/candlepin.rb +87 -68
  94. data/app/lib/katello/resources/cdn.rb +26 -13
  95. data/app/lib/katello/util/cdn_var_substitutor.rb +39 -124
  96. data/app/lib/katello/util/path_with_substitutions.rb +58 -0
  97. data/app/models/katello/activation_key.rb +11 -15
  98. data/app/models/katello/candlepin/content.rb +6 -14
  99. data/app/models/katello/candlepin/product_content.rb +11 -3
  100. data/app/models/katello/concerns/content_facet_host_extensions.rb +19 -10
  101. data/app/models/katello/concerns/environment_extensions.rb +6 -3
  102. data/app/models/katello/concerns/host_managed_extensions.rb +21 -7
  103. data/app/models/katello/concerns/hostgroup_extensions.rb +3 -3
  104. data/app/models/katello/concerns/location_extensions.rb +32 -24
  105. data/app/models/katello/concerns/pulp_database_unit.rb +10 -2
  106. data/app/models/katello/concerns/smart_proxy_extensions.rb +8 -6
  107. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +27 -10
  108. data/app/models/katello/content_override.rb +63 -0
  109. data/app/models/katello/content_view.rb +3 -8
  110. data/app/models/katello/content_view_history.rb +1 -1
  111. data/app/models/katello/content_view_puppet_environment.rb +10 -2
  112. data/app/models/katello/content_view_puppet_module.rb +1 -1
  113. data/app/models/katello/content_view_version.rb +2 -2
  114. data/app/models/katello/docker_manifest.rb +1 -1
  115. data/app/models/katello/docker_tag.rb +3 -3
  116. data/app/models/katello/erratum.rb +4 -4
  117. data/app/models/katello/file_unit.rb +1 -1
  118. data/app/models/katello/glue/candlepin/activation_key.rb +10 -8
  119. data/app/models/katello/glue/candlepin/content.rb +1 -21
  120. data/app/models/katello/glue/candlepin/owner.rb +3 -1
  121. data/app/models/katello/glue/candlepin/pool.rb +3 -1
  122. data/app/models/katello/glue/candlepin/product.rb +2 -7
  123. data/app/models/katello/glue/provider.rb +19 -1
  124. data/app/models/katello/glue/pulp/repo.rb +33 -19
  125. data/app/models/katello/glue/pulp/repos.rb +0 -8
  126. data/app/models/katello/gpg_key.rb +1 -1
  127. data/app/models/katello/host/subscription_facet.rb +47 -4
  128. data/app/models/katello/host_collection.rb +2 -2
  129. data/app/models/katello/kt_environment.rb +1 -1
  130. data/app/models/katello/ostree_branch.rb +1 -1
  131. data/app/models/katello/package_group.rb +1 -1
  132. data/app/models/katello/pool.rb +14 -15
  133. data/app/models/katello/product.rb +2 -2
  134. data/app/models/katello/provider.rb +0 -28
  135. data/app/models/katello/repository.rb +91 -29
  136. data/app/models/katello/subscription.rb +12 -0
  137. data/app/models/katello/subscription_status.rb +1 -1
  138. data/app/models/katello/sync_plan.rb +9 -2
  139. data/app/models/katello/trace_status.rb +53 -0
  140. data/app/models/setting/content.rb +55 -25
  141. data/app/overrides/add_activation_keys_input.rb +0 -5
  142. data/app/presenters/katello/product_content_presenter.rb +11 -3
  143. data/app/services/katello/candlepin/consumer.rb +24 -16
  144. data/app/services/katello/pulp/erratum.rb +1 -0
  145. data/app/services/katello/pulp/file_unit.rb +1 -1
  146. data/app/views/dashboard/_errata_widget.html.erb +2 -2
  147. data/app/views/foreman/unattended/kickstart-katello.erb +1 -1
  148. data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +14 -1
  149. data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +15 -1
  150. data/app/views/katello/api/v2/repositories/base.json.rabl +1 -0
  151. data/app/views/katello/api/v2/repositories/show.json.rabl +5 -0
  152. data/app/views/katello/api/v2/subscription_facet/show.json.rabl +1 -1
  153. data/app/views/katello/api/v2/subscriptions/base.json.rabl +1 -0
  154. data/app/views/katello/providers/redhat/_repo_sets.html.erb +1 -1
  155. data/app/views/katello/providers/redhat/_repos.html.erb +1 -1
  156. data/app/views/katello/providers/redhat/show.html.erb +1 -1
  157. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +2 -1
  158. data/app/views/overrides/hosts/_subscription_link.html.erb +1 -1
  159. data/config/initializers/pagelets.rb +6 -0
  160. data/config/routes/api/v2.rb +8 -0
  161. data/config/routes/overrides.rb +1 -0
  162. data/db/migrate/20161209162947_add_virt_who_to_katello_pools.rb +9 -0
  163. data/db/migrate/20170114051758_add_depth_to_repositories.rb +6 -0
  164. data/db/migrate/20170122204325_add_hypervisor_to_subscription_facets.rb +6 -0
  165. data/db/migrate/20170125152421_move_default_location_to_settings.rb +25 -0
  166. data/db/migrate/20170208215148_add_docker_repo_name.rb +14 -0
  167. data/db/migrate/20170222131211_change_pool_columns_to_dates.rb +19 -0
  168. data/db/seeds.d/101-locations.rb +9 -3
  169. data/db/seeds.d/103-provisioning_templates.rb +2 -2
  170. data/db/seeds.d/106-mail_notifications.rb +6 -0
  171. data/db/seeds.d/108-subcription-bookmarks.rb +19 -0
  172. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-key.factory.js +2 -2
  173. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +1 -1
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.module.js +2 -1
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +3 -3
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-host-collections.controller.js +1 -0
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +1 -0
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-associations.controller.js +1 -0
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-host-collections.controller.js +1 -0
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js +64 -0
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +1 -0
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-add-subscriptions.html +2 -52
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +1 -1
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +3 -3
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections-table.html +2 -0
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections.html +1 -1
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-repository-sets.html +85 -0
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions-list.html +3 -39
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions.html +1 -1
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html +15 -15
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +3 -3
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -0
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +6 -0
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html +50 -0
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/{content-hosts-bulk-action-environment.controller.js → content-hosts-bulk-environment-modal.controller.js} +24 -13
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +124 -0
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-host-collections-modal.controller.js +86 -0
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/{content-hosts-bulk-action-packages.controller.js → content-hosts-bulk-packages-modal.controller.js} +24 -17
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/{content-hosts-bulk-action-subscriptions.controller.js → content-hosts-bulk-subscriptions-modal.controller.js} +31 -12
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-destroy-modal.html +4 -0
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/{bulk-actions-environment.html → content-hosts-bulk-environment-modal.html} +27 -13
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +107 -0
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-host-collections-modal.html +91 -0
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +162 -0
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html +121 -0
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/errata-details.html +0 -5
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +108 -16
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.module.js +2 -279
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +251 -0
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +19 -19
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +5 -4
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +3 -3
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +2 -2
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +5 -5
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +35 -34
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +3 -3
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +8 -7
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +12 -13
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +28 -20
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/errata-details.html +42 -62
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-host-collections.controller.js +17 -12
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-subscriptions.controller.js +22 -10
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +4 -0
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +2 -4
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-host-collections.controller.js +17 -12
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-repository-sets.controller.js +64 -0
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-subscriptions.controller.js +12 -12
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-add-subscriptions.html +21 -49
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +136 -148
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-events.html +1 -1
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-host-collections-table.html +59 -0
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-host-collections.html +20 -0
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +198 -256
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html +38 -54
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-repository-sets.html +93 -0
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions-list.html +6 -54
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html +47 -82
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-tasks.html +3 -4
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +107 -13
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register.html +26 -31
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +1 -1
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +115 -33
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-activation-keys.controller.js +1 -0
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +2 -1
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/content-view-deletion.html +2 -2
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-activation-keys.html +3 -3
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-confirm.html +3 -3
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-content-hosts.html +3 -3
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-environments.html +2 -2
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-available-content-views.controller.js +1 -0
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +1 -0
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-available-content-views.html +4 -6
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-content-views-list.html +4 -6
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite.html +1 -1
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-docker-repositories.controller.js +1 -0
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-file-repositories.controller.js +1 -0
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-ostree-repositories.controller.js +1 -0
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-repositories.controller.js +1 -0
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-docker-repositories-list.controller.js +1 -0
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-file-repositories-list.controller.js +1 -0
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-ostree-repositories-list.controller.js +1 -0
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +2 -1
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +2 -1
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories-list.controller.js +1 -0
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +7 -0
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-errata-filter.controller.js +10 -1
  267. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-package-group-filter.controller.js +1 -0
  268. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +9 -1
  269. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/docker-tag-filter.controller.js +137 -0
  270. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/errata-filter-list.controller.js +1 -1
  271. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-helper.service.js +2 -1
  272. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +9 -0
  273. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter.factory.js +28 -0
  274. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filters.controller.js +11 -7
  275. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/new-filter.controller.js +22 -5
  276. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-filter.controller.js +66 -80
  277. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-group-list-filter.controller.js +1 -0
  278. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata-filter.html +1 -1
  279. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/docker-filter.html +28 -0
  280. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/docker-tag-filter-details.html +65 -0
  281. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +10 -8
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter.html +48 -51
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +5 -5
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +17 -8
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html +49 -42
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +144 -171
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter.html +7 -7
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter-details.html +4 -4
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-group-filter.html +9 -9
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/partials/filter-repositories-count.html +2 -2
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +1 -0
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/views/content-view-history.html +1 -3
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-names.controller.js +1 -0
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-versions.controller.js +1 -0
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-names.html +17 -19
  296. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-versions.html +17 -21
  297. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-modules.html +3 -3
  298. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +20 -6
  299. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +6 -8
  300. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +5 -7
  301. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +2 -3
  302. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +5 -7
  303. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +21 -2
  304. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +29 -11
  305. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +8 -10
  306. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +34 -16
  307. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +2 -2
  308. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version.factory.js +2 -1
  309. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +1 -1
  310. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +2 -7
  311. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-package-groups.html +2 -7
  312. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-packages.html +2 -7
  313. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-puppet-modules.html +1 -1
  314. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +13 -0
  315. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +2 -1
  316. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +1 -1
  317. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-details.controller.js +1 -0
  318. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +1 -1
  319. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.controller.js +1 -1
  320. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.factory.js +7 -1
  321. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment-content.controller.js +1 -1
  322. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment.controller.js +1 -1
  323. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +2 -8
  324. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-details.html +15 -19
  325. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html +5 -12
  326. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +7 -14
  327. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +5 -12
  328. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-packages.html +5 -12
  329. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-puppet-modules.html +4 -11
  330. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-repositories.html +4 -9
  331. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment.html +32 -51
  332. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +73 -29
  333. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/new-environment.controller.js +1 -1
  334. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +8 -12
  335. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/new-environment.html +2 -2
  336. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +17 -21
  337. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/{errata-content-hosts.controller.js → erratum-content-hosts.controller.js} +13 -12
  338. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/{errata-details-repositories.controller.js → erratum-repositories.controller.js} +7 -6
  339. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/{errata-details.controller.js → erratum.controller.js} +3 -3
  340. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +78 -0
  341. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-info.html +58 -0
  342. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/{errata-details-repositories.html → erratum-repositories.html} +22 -35
  343. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum.html +37 -0
  344. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.controller.js +8 -30
  345. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.module.js +2 -1
  346. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +90 -83
  347. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/incremental-update.service.js +149 -0
  348. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +7 -17
  349. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-select-content-hosts.html +4 -14
  350. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata.html +9 -26
  351. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-task-details.html +1 -1
  352. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-tasks-list.html +1 -1
  353. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-tasks.html +6 -9
  354. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +77 -34
  355. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-content-views.controller.js +44 -0
  356. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-repositories.controller.js +36 -0
  357. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file.controller.js +37 -0
  358. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-content-views.html +43 -0
  359. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-info.html +15 -0
  360. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-repositories.html +54 -0
  361. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file.html +37 -0
  362. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +28 -0
  363. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.controller.js +35 -0
  364. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.module.js +20 -0
  365. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.routes.js +71 -0
  366. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/views/files.html +39 -0
  367. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-products.controller.js +1 -0
  368. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-repositories.controller.js +1 -0
  369. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-info.html +1 -1
  370. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.controller.js +1 -1
  371. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/new-gpg-key.html +2 -2
  372. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +3 -2
  373. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-add-hosts.controller.js +1 -0
  374. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-hosts.controller.js +1 -0
  375. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-add-hosts.html +3 -4
  376. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-copy.html +1 -1
  377. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-details.html +3 -3
  378. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +2 -2
  379. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts.html +1 -1
  380. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collection.factory.js +1 -1
  381. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.controller.js +1 -1
  382. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/new-host-collection.html +24 -23
  383. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections.html +2 -2
  384. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +1 -0
  385. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-subscription.factory.js +1 -1
  386. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +3 -3
  387. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +6 -6
  388. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +6 -6
  389. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +6 -6
  390. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +6 -6
  391. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +6 -6
  392. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +6 -6
  393. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +6 -6
  394. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +6 -6
  395. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +6 -6
  396. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +10 -10
  397. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/katello-features.run.js +2 -2
  398. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +24 -14
  399. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/views/organization-selector.html +3 -1
  400. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/{ostree-branches-details-repositories.controller.js → ostree-branch-repositories.controller.js} +7 -6
  401. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/{ostree-branches-details.controller.js → ostree-branch.controller.js} +2 -2
  402. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-info.html +18 -0
  403. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/{ostree-branches-details-repositories.html → ostree-branch-repositories.html} +25 -34
  404. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch.html +30 -0
  405. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.controller.js +1 -1
  406. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.routes.js +24 -27
  407. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches.html +28 -7
  408. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-repositories.controller.js +1 -0
  409. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-files.html +1 -3
  410. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-repositories.html +17 -27
  411. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.controller.js +1 -1
  412. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages.html +12 -14
  413. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/{product-bulk-action.factory.js → bulk/product-bulk-action.factory.js} +1 -1
  414. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-advanced-sync-modal.controller.js +54 -0
  415. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-sync-plan-modal.controller.js +80 -0
  416. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-advanced-sync-modal.html +26 -0
  417. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-sync-plan-modal.html +87 -0
  418. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +1 -0
  419. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-advanced-sync.controller.js +33 -0
  420. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +17 -2
  421. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +29 -0
  422. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +5 -4
  423. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +18 -0
  424. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync-options.html +54 -0
  425. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync.html +29 -0
  426. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +26 -9
  427. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +46 -11
  428. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +1 -1
  429. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-files.html +64 -0
  430. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +1 -1
  431. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +5 -5
  432. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +6 -3
  433. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +52 -31
  434. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/ostree-upstream-sync-policy.service.js +26 -0
  435. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.module.js +2 -1
  436. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +19 -0
  437. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +2 -1
  438. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +12 -7
  439. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-details.html +2 -2
  440. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/{discovery-form.controller.js → discovery-create.controller.js} +109 -35
  441. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-repositories.service.js +94 -0
  442. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +84 -30
  443. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-base.html +1 -1
  444. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create-status.html +3 -0
  445. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +154 -123
  446. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +94 -67
  447. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new-form.html +4 -1
  448. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new.html +3 -3
  449. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +93 -11
  450. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +3 -4
  451. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +43 -44
  452. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/{puppet-modules-details-content-views.controller.js → puppet-module-content-views.controller.js} +6 -5
  453. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/{puppet-modules-details-repositories.controller.js → puppet-module-repositories.controller.js} +6 -5
  454. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/{puppet-modules-details.controller.js → puppet-module.controller.js} +4 -4
  455. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/{puppet-modules-details-content-views.html → puppet-module-content-views.html} +12 -6
  456. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module-info.html +32 -0
  457. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/{puppet-modules-details-repositories.html → puppet-module-repositories.html} +11 -9
  458. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-module.html +37 -0
  459. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.controller.js +3 -4
  460. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.routes.js +31 -29
  461. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules.html +34 -7
  462. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/content-override-helper.service.js +47 -0
  463. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/repository-sets-enabled.filter.js +34 -0
  464. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/repository-sets.module.js +8 -0
  465. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/subscription-details.controller.js +2 -0
  466. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-content-hosts.html +1 -1
  467. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-info.html +13 -0
  468. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-products.html +1 -1
  469. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/manifest-import.controller.js +8 -0
  470. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-delete-modal.html +19 -0
  471. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +11 -5
  472. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscription-start-date.directive.js +21 -0
  473. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.controller.js +2 -2
  474. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscription-start-date.html +2 -0
  475. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +8 -9
  476. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-add-products.controller.js +1 -0
  477. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-products.controller.js +1 -0
  478. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html +2 -2
  479. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html +4 -2
  480. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan.html +2 -2
  481. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.controller.js +1 -1
  482. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +2 -2
  483. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-nutupane.factory.js +1 -0
  484. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/task-details.html +53 -66
  485. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +5 -0
  486. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/host_subscriptions.scss +14 -0
  487. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/tasks.scss +4 -0
  488. data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -0
  489. data/lib/katello/engine.rb +3 -22
  490. data/lib/katello/permissions/content_view_permissions.rb +2 -2
  491. data/lib/katello/permissions/host_permissions.rb +1 -0
  492. data/lib/katello/permissions/product_permissions.rb +7 -4
  493. data/lib/katello/plugin.rb +18 -2
  494. data/lib/katello/tasks/regenerate_ueber_certs.rake +15 -0
  495. data/lib/katello/tasks/rubocop.rake +3 -2
  496. data/lib/katello/tasks/test.rake +17 -5
  497. data/lib/katello/tasks/unify_hosts.rake +1 -1
  498. data/lib/katello/tasks/update_subscription_facet_backend_data.rake +61 -0
  499. data/lib/katello/tasks/upgrades/3.3/hypervisors.rake +7 -0
  500. data/lib/katello/tasks/upgrades/3.3/import_subscriptions.rake +12 -0
  501. data/lib/katello/tasks/virt_who_report.rake +150 -0
  502. data/lib/katello/version.rb +1 -1
  503. metadata +116 -115
  504. data/app/lib/actions/candlepin/owner/refresh_subscriptions.rb +0 -15
  505. data/app/lib/actions/candlepin/product/delete_unused.rb +0 -13
  506. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-product-details.controller.js +0 -88
  507. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-products.controller.js +0 -46
  508. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-products.html +0 -49
  509. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action-errata.controller.js +0 -127
  510. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action-host-collections.controller.js +0 -79
  511. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action.controller.js +0 -81
  512. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-errata.html +0 -113
  513. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-host-collections.html +0 -82
  514. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-packages.html +0 -153
  515. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-subscriptions.html +0 -86
  516. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions.html +0 -92
  517. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-products.controller.js +0 -99
  518. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-products.html +0 -56
  519. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/host-collections-table.html +0 -90
  520. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/host-collections.html +0 -20
  521. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts-table-collapsed.html +0 -25
  522. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts-table-full.html +0 -61
  523. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-content-hosts.html +0 -91
  524. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-info.html +0 -62
  525. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details.html +0 -52
  526. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-table-collapsed.html +0 -20
  527. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata-table-full.html +0 -46
  528. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details-info.html +0 -23
  529. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details.html +0 -43
  530. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches-table-collapsed.html +0 -19
  531. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches-table-full.html +0 -21
  532. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products-bulk-action.controller.js +0 -93
  533. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details-info.html +0 -31
  534. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details.html +0 -52
  535. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules-table-collapsed.html +0 -20
  536. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules-table-full.html +0 -29
  537. data/lib/katello/tasks/gettext.rake +0 -5
  538. data/lib/katello/tasks/jshint.rake +0 -50
  539. data/lib/katello/tasks/jsroutes.rake +0 -5
  540. data/lib/katello/tasks/pretty_routes.rake +0 -30
  541. data/lib/katello/tasks/simplecov.rake +0 -7
  542. data/vendor/assets/javascripts/katello/jquery-1.7.2.js +0 -9404
@@ -23,13 +23,27 @@ module Katello
23
23
 
24
24
  api :PUT, "/products/bulk/sync", N_("Sync one or more products")
25
25
  param :ids, Array, :desc => N_("List of product ids"), :required => true
26
+ param :skip_metadata_check, :bool, :desc => N_("Force sync even if no upstream changes are detected. Non-yum repositories are skipped."), :required => false
27
+ param :validate_contents, :bool, :desc => N_("Force a sync and validate the checksums of all content. Non-yum repositories (or those with \
28
+ On Demand download policy) are skipped."), :required => false
26
29
  def sync_products
30
+ skip_metadata_check = ::Foreman::Cast.to_bool(params[:skip_metadata_check])
31
+ validate_contents = ::Foreman::Cast.to_bool(params[:validate_contents])
32
+
27
33
  syncable_products = @products.syncable
28
34
  syncable_repositories = Repository.where(:product_id => syncable_products).has_url
29
35
 
36
+ syncable_repositories = syncable_repositories.where(:content_type => Repository::YUM_TYPE) if skip_metadata_check || validate_contents
37
+ syncable_repositories = syncable_repositories.where.not(:download_policy => ::Runcible::Models::YumImporter::DOWNLOAD_ON_DEMAND) if validate_contents
38
+
39
+ fail _("No syncable repositories found for selected products and options.") if syncable_repositories.empty?
40
+
30
41
  task = async_task(::Actions::BulkAction,
31
42
  ::Actions::Katello::Repository::Sync,
32
- syncable_repositories)
43
+ syncable_repositories,
44
+ nil,
45
+ :skip_metadata_check => skip_metadata_check,
46
+ :validate_contents => validate_contents)
33
47
 
34
48
  respond_for_async :resource => task
35
49
  end
@@ -7,7 +7,7 @@ module Katello
7
7
  before_action :find_product_for_create, :only => [:create]
8
8
  before_action :find_organization_from_product, :only => [:create]
9
9
  before_action :find_repository, :only => [:show, :update, :destroy, :sync, :export,
10
- :remove_content, :upload_content,
10
+ :remove_content, :upload_content, :republish,
11
11
  :import_uploads, :gpg_key_content]
12
12
  before_action :find_content, :only => :remove_content
13
13
  before_action :find_organization_from_repo, :only => [:update]
@@ -35,6 +35,8 @@ module Katello
35
35
  param :verify_ssl_on_sync, :bool, :desc => N_("if true, Katello will verify the upstream url's SSL certifcates are signed by a trusted CA.")
36
36
  param :upstream_username, String, :desc => N_("Username of the upstream repository user used for authentication")
37
37
  param :upstream_password, String, :desc => N_("Password of the upstream repository user used for authentication")
38
+ param :ostree_upstream_sync_policy, ::Katello::Repository::OSTREE_UPSTREAM_SYNC_POLICIES, :desc => N_("policies for syncing upstream ostree repositories.")
39
+ param :ostree_upstream_sync_depth, :number, :desc => N_("if a custom sync policy is chosen for ostree repositories then a 'depth' value must be provided.")
38
40
  end
39
41
 
40
42
  api :GET, "/repositories", N_("List of enabled repositories")
@@ -151,6 +153,10 @@ module Katello
151
153
  repository.verify_ssl_on_sync = ::Foreman::Cast.to_bool(repo_params[:verify_ssl_on_sync]) if repo_params.key?(:verify_ssl_on_sync)
152
154
  repository.upstream_username = repo_params[:upstream_username] if repo_params.key?(:upstream_username)
153
155
  repository.upstream_password = repo_params[:upstream_password] if repo_params.key?(:upstream_password)
156
+ if repository.ostree?
157
+ repository.ostree_upstream_sync_policy = repo_params[:ostree_upstream_sync_policy]
158
+ repository.ostree_upstream_sync_depth = repo_params[:ostree_upstream_sync_depth]
159
+ end
154
160
  sync_task(::Actions::Katello::Repository::Create, repository, false, true)
155
161
  repository = Repository.find(repository.id)
156
162
  respond_for_show(:resource => repository)
@@ -164,6 +170,13 @@ module Katello
164
170
  render :json => repo_types.values
165
171
  end
166
172
 
173
+ api :PUT, "/repositories/:id/republish", N_("Forces a republish of the specified repository, regenerating metadata and symlinks on the filesystem.")
174
+ param :id, :identifier, :desc => N_("Repository identifier"), :required => true
175
+ def republish
176
+ task = async_task(::Actions::Katello::Repository::MetadataGenerate, @repository, :force => true)
177
+ respond_for_async :resource => task
178
+ end
179
+
167
180
  api :GET, "/repositories/:id", N_("Show a repository")
168
181
  param :id, :identifier, :required => true, :desc => N_("repository ID")
169
182
  def show
@@ -174,7 +187,16 @@ module Katello
174
187
  param :id, :identifier, :required => true, :desc => N_("repository ID")
175
188
  param :source_url, String, :desc => N_("temporarily override feed URL for sync"), :required => false
176
189
  param :incremental, :bool, :desc => N_("perform an incremental import"), :required => false
190
+ param :skip_metadata_check, :bool, :desc => N_("Force sync even if no upstream changes are detected. Only used with yum repositories."), :required => false
191
+ param :validate_contents, :bool, :desc => N_("Force a sync and validate the checksums of all content. Only used with yum repositories."), :required => false
177
192
  def sync
193
+ sync_options = {
194
+ :skip_metadata_check => ::Foreman::Cast.to_bool(params[:skip_metadata_check]),
195
+ :validate_contents => ::Foreman::Cast.to_bool(params[:validate_contents]),
196
+ :incremental => ::Foreman::Cast.to_bool(params[:incremental]),
197
+ :source_url => params[:source_url]
198
+ }
199
+
178
200
  if params[:source_url].present? && params[:source_url] !~ /\A#{URI.regexp}\z/
179
201
  fail HttpErrors::BadRequest, _("source URL is malformed")
180
202
  end
@@ -183,9 +205,10 @@ module Katello
183
205
  fail HttpErrors::BadRequest, _("attempted to sync without a feed URL")
184
206
  end
185
207
 
186
- task = async_task(::Actions::Katello::Repository::Sync, @repository,
187
- nil, params[:source_url], ::Foreman::Cast.to_bool(params[:incremental]))
208
+ task = async_task(::Actions::Katello::Repository::Sync, @repository, nil, sync_options)
188
209
  respond_for_async :resource => task
210
+ rescue Errors::InvalidActionOptionError => e
211
+ raise HttpErrors::BadRequest, e.message
189
212
  end
190
213
 
191
214
  api :POST, "/repositories/:id/export", N_("Export a repository")
@@ -229,6 +252,8 @@ module Katello
229
252
  param :verify_ssl_on_sync, :bool, :desc => N_("if true, Katello will verify the upstream url's SSL certifcates are signed by a trusted CA.")
230
253
  param :upstream_username, String, :desc => N_("Username of the upstream repository user for authentication")
231
254
  param :upstream_password, String, :desc => N_("Password of the upstream repository user for authentication")
255
+ param :ostree_upstream_sync_policy, ::Katello::Repository::OSTREE_UPSTREAM_SYNC_POLICIES, :desc => N_("policies for syncing upstream ostree repositories.")
256
+ param :ostree_upstream_sync_depth, :number, :desc => N_("if a custom sync policy is chosen for ostree repositories then a 'depth' value must be provided.")
232
257
  def update
233
258
  repo_params = repository_params
234
259
  sync_task(::Actions::Katello::Repository::Update, @repository, repo_params)
@@ -277,9 +302,11 @@ module Katello
277
302
  desc "Remove content from a repository"
278
303
  param :id, :identifier, :required => true, :desc => "repository ID"
279
304
  param 'ids', Array, :required => true, :desc => "Array of content ids to remove"
305
+ param 'sync_capsule', :bool, :desc => N_("Whether or not to sync an external capsule after upload. Default: true")
280
306
  def remove_content
307
+ sync_capsule = ::Foreman::Cast.to_bool(params.fetch(:sync_capsule, true))
281
308
  fail _("No content ids provided") if @content.blank?
282
- respond_for_async :resource => sync_task(::Actions::Katello::Repository::RemoveContent, @repository, @content)
309
+ respond_for_async :resource => sync_task(::Actions::Katello::Repository::RemoveContent, @repository, @content, sync_capsule: sync_capsule)
283
310
  end
284
311
 
285
312
  api :POST, "/repositories/:id/upload_content", N_("Upload content into the repository")
@@ -312,6 +339,9 @@ module Katello
312
339
  api :PUT, "/repositories/:id/import_uploads", N_("Import uploads into a repository")
313
340
  param :id, :identifier, :required => true, :desc => N_("Repository id")
314
341
  param :upload_ids, Array, :desc => N_("Array of upload ids to import"), :deprecated => true
342
+ param :async, :bool, desc: N_("Do not wait for the ImportUpload action to finish. Default: false")
343
+ param 'publish_repository', :bool, :desc => N_("Whether or not to regenerate the repository on disk. Default: true")
344
+ param 'sync_capsule', :bool, :desc => N_("Whether or not to sync an external capsule after upload. Default: true")
315
345
  param :uploads, Array, :desc => N_("Array of uploads to import") do
316
346
  param 'id', String, :required => true
317
347
  param 'size', String
@@ -319,44 +349,37 @@ module Katello
319
349
  param 'name', String, :desc => N_("Needs to only be set for file repositories")
320
350
  end
321
351
  def import_uploads
352
+ generate_metadata = ::Foreman::Cast.to_bool(params.fetch(:publish_repository, true))
353
+ sync_capsule = ::Foreman::Cast.to_bool(params.fetch(:sync_capsule, true))
354
+ async = ::Foreman::Cast.to_bool(params.fetch(:async, false))
322
355
  if params['upload_ids'].empty? && params['uploads'].empty?
323
356
  fail HttpErrors::BadRequest, _('No upload param specified. Either uploads or upload_ids (deprecated) is required.')
324
357
  end
325
358
 
359
+ uploads = params['uploads'] || []
360
+
326
361
  if params.key?(:upload_ids)
327
362
  ::Foreman::Deprecation.api_deprecation_warning("The parameter upload_ids will be removed in Katello 3.3. Please update to use the uploads parameter.")
328
-
329
- params[:upload_ids].each do |upload_id|
330
- begin
331
- sync_task(::Actions::Katello::Repository::ImportUpload, @repository, upload_id)
332
- rescue => e
333
- raise HttpErrors::BadRequest, e.message
334
- end
335
- end
363
+ params[:upload_ids].each { |upload_id| uploads << {'id' => upload_id} }
336
364
  end
337
365
 
338
- if params.key?(:uploads)
339
- params[:uploads].each do |upload|
340
- if @repository.file?
341
- upload.except('id').except('name')
342
- else
343
- upload.except('id')
344
- end
345
-
346
- begin
347
- sync_task(
348
- ::Actions::Katello::Repository::ImportUpload,
349
- @repository,
350
- upload['id'],
351
- upload.except('id')
352
- )
353
- rescue => e
354
- raise HttpErrors::BadRequest, e.message
355
- end
366
+ upload_ids = uploads.map { |upload| upload['id'] }
367
+ unit_keys = uploads.map do |upload|
368
+ if @repository.file?
369
+ upload.except('id').except('name')
370
+ else
371
+ upload.except('id')
356
372
  end
357
373
  end
358
374
 
359
- render :nothing => true
375
+ begin
376
+ task = send(async ? :async_task : :sync_task, ::Actions::Katello::Repository::ImportUpload,
377
+ @repository, upload_ids, :unit_keys => unit_keys,
378
+ :generate_metadata => generate_metadata, :sync_capsule => sync_capsule)
379
+ respond_for_async(resource: task)
380
+ rescue => e
381
+ raise HttpErrors::BadRequest, e.message
382
+ end
360
383
  end
361
384
 
362
385
  # returns the content of a repo gpg key, used directly by yum
@@ -395,7 +418,9 @@ module Katello
395
418
  end
396
419
 
397
420
  def repository_params
398
- keys = [:download_policy, :mirror_on_sync, :verify_ssl_on_sync, :upstream_password, :upstream_username]
421
+ keys = [:download_policy, :mirror_on_sync, :verify_ssl_on_sync, :upstream_password, :upstream_username,
422
+ :ostree_upstream_sync_depth, :ostree_upstream_sync_policy
423
+ ]
399
424
  keys += [:label, :content_type] if params[:action] == "create"
400
425
  if params[:action] == 'create' || @repository.custom?
401
426
  keys += [:url, :gpg_key_id, :unprotected, :name, :checksum_type, :docker_upstream_name]
@@ -13,6 +13,7 @@ module Katello
13
13
  api :GET, "/products/:product_id/repository_sets", N_("List repository sets for a product.")
14
14
  param :product_id, :number, :required => true, :desc => N_("ID of a product to list repository sets from")
15
15
  param :name, String, :required => false, :desc => N_("Repository set name to search on")
16
+ param_group :search, Api::V2::ApiController
16
17
  def index
17
18
  collection = {}
18
19
  collection[:results] = @product.displayable_product_contents
@@ -3,7 +3,7 @@ module Katello
3
3
  include Katello::Concerns::FilteredAutoCompleteSearch
4
4
 
5
5
  before_action :find_activation_key
6
- before_action :find_host, :only => :index
6
+ before_action :find_host, :only => [:index, :auto_complete_search]
7
7
  before_action :find_optional_organization, :only => [:index, :available, :show]
8
8
  before_action :find_organization, :only => [:upload, :delete_manifest,
9
9
  :refresh_manifest, :manifest_history]
@@ -21,6 +21,7 @@ module Katello
21
21
  param :name, String, :desc => N_("filter by name")
22
22
  param :sync_date, String, :desc => N_("filter by sync date")
23
23
  param :interval, SyncPlan::TYPES, :desc => N_("filter by interval")
24
+ param_group :search, Api::V2::ApiController
24
25
  def index
25
26
  respond_for_index(:collection => scoped_search(index_relation.uniq, :name, :asc))
26
27
  end
@@ -0,0 +1,39 @@
1
+ module Katello
2
+ module Concerns
3
+ module Api::V2::ContentOverridesController
4
+ extend ActiveSupport::Concern
5
+
6
+ # overriden_object => pass it either an activation key or content host
7
+ def validate_content_overrides_enabled(content_params, overriden_object = nil)
8
+ name = content_params[:name] || "enabled"
9
+ compare_value = content_params[:value].to_s.downcase
10
+ remove = content_params.key?(:remove) ? Foreman::Cast.to_bool(content_params[:remove]) : nil
11
+ content_label = content_params[:content_label]
12
+
13
+ if !remove && name == "enabled" &&
14
+ (compare_value.blank? || (compare_value != "default" &&
15
+ ::Foreman::Cast.to_bool(compare_value).nil?))
16
+ fail HttpErrors::BadRequest, _("Value must either be a boolean or 'default' for 'enabled'")
17
+ end
18
+
19
+ if content_label.blank? || (overriden_object &&
20
+ !overriden_object.valid_content_override_label?(content_label))
21
+ fail HttpErrors::BadRequest, _("Invalid content label: %s") % content_params[:content_label]
22
+ end
23
+
24
+ override = ::Katello::ContentOverride.new(content_params[:content_label])
25
+ override.name = name
26
+ if remove || (name == "enabled" && compare_value == "default")
27
+ override.value = nil
28
+ else
29
+ if name == "enabled"
30
+ override.value = ::Foreman::Cast.to_bool(compare_value) ? "1" : "0"
31
+ else
32
+ override.value = content_params[:value]
33
+ end
34
+ end
35
+ override
36
+ end
37
+ end
38
+ end
39
+ end
@@ -29,6 +29,7 @@ module Katello
29
29
  @taxonomy = Organization.new(resource_params)
30
30
  sync_task(::Actions::Katello::Organization::Create, @taxonomy)
31
31
  @taxonomy.reload
32
+ switch_taxonomy
32
33
  if @count_nil_hosts > 0
33
34
  redirect_to send("step2_#{taxonomy_single}_path", @taxonomy)
34
35
  else
@@ -1,5 +1,7 @@
1
1
  module Katello
2
2
  class ProvidersController < Katello::ApplicationController
3
+ helper Rails.application.routes.url_helpers
4
+ helper ReactjsHelper
3
5
  before_action :find_rh_provider, :only => [:redhat_provider, :redhat_provider_tab]
4
6
  before_action :search_filter, :only => [:auto_complete_search]
5
7
 
@@ -37,7 +39,7 @@ module Katello
37
39
  end
38
40
 
39
41
  def controller_display_name
40
- return 'provider'
42
+ 'provider'
41
43
  end
42
44
 
43
45
  def search_filter
@@ -4,6 +4,8 @@ module Katello
4
4
  include ActionView::Helpers::DateHelper
5
5
  include ActionView::Helpers::NumberHelper
6
6
  include SyncManagementHelper::RepoMethods
7
+ helper Rails.application.routes.url_helpers
8
+ helper ReactjsHelper
7
9
  respond_to :html, :json
8
10
 
9
11
  def section_id
@@ -14,7 +14,7 @@ module Katello
14
14
  end
15
15
 
16
16
  def erratum_path(erratum)
17
- "#{Setting[:foreman_url]}/errata/#{erratum.uuid}/info"
17
+ "#{Setting[:foreman_url]}/errata/#{erratum.uuid}"
18
18
  end
19
19
 
20
20
  def repository_erratum_path(repository, type = nil)
@@ -194,20 +194,15 @@ module Katello
194
194
  return [] unless host.operatingsystem.is_a?(Redhat)
195
195
 
196
196
  new_host = ::Host.new
197
- # there is foreman bug right now that prevents
198
- # os and arch to get updated properly,
199
- # http://projects.theforeman.org/issues/14737
200
- # so we are going to hard code it to use what
201
- # is in the param host for now.
202
197
  new_host.operatingsystem = param_host.operatingsystem.present? ? param_host.operatingsystem : host.operatingsystem
203
198
  new_host.architecture = param_host.architecture.present? ? param_host.architecture : host.architecture
204
199
 
205
200
  if (host.is_a? Hostgroup)
206
- new_host.content_facet = Host::ContentFacet.new(:lifecycle_environment_id => host.lifecycle_environment_id,
201
+ new_host.content_facet = ::Katello::Host::ContentFacet.new(:lifecycle_environment_id => host.lifecycle_environment_id,
207
202
  :content_view_id => host.content_view_id,
208
203
  :content_source_id => host.content_source_id)
209
204
  elsif host.content_facet.present?
210
- new_host.content_facet = Host::ContentFacet.new(:lifecycle_environment_id => host.content_facet.lifecycle_environment_id,
205
+ new_host.content_facet = ::Katello::Host::ContentFacet.new(:lifecycle_environment_id => host.content_facet.lifecycle_environment_id,
211
206
  :content_view_id => host.content_facet.content_view_id,
212
207
  :content_source_id => host.content_source_id)
213
208
  end
@@ -60,7 +60,8 @@ module Actions
60
60
  else
61
61
  suspended_action.notify_not_connected("Not Connected")
62
62
  end
63
- rescue ::TransportFailure => e
63
+ rescue => e
64
+ raise e unless e.class.name.include? "TransportFailure"
64
65
  suspended_action.notify_not_connected(e.message)
65
66
  end
66
67
 
@@ -10,7 +10,7 @@ module Actions
10
10
  def existing_ids
11
11
  ::Katello::Resources::Candlepin::Environment.
12
12
  find(input[:cp_environment_id])[:environmentContent].map do |content|
13
- content[:contentId]
13
+ content[:content][:id]
14
14
  end
15
15
  end
16
16
 
@@ -0,0 +1,17 @@
1
+ module Actions
2
+ module Candlepin
3
+ module Owner
4
+ class UpstreamRegenerateCertificates < Candlepin::Abstract
5
+ input_format do
6
+ param :organization_id
7
+ param :upstream
8
+ end
9
+
10
+ def run
11
+ organization = ::Organization.find(input[:organization_id])
12
+ output[:response] = organization.redhat_provider.owner_regenerate_upstream_certificates(input[:upstream])
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -5,11 +5,12 @@ module Actions
5
5
  input_format do
6
6
  param :product_id
7
7
  param :content_id
8
+ param :owner
8
9
  end
9
10
 
10
11
  def run
11
12
  output[:response] = ::Katello::Resources::Candlepin::Product.
12
- add_content(input[:product_id], input[:content_id], true)
13
+ add_content(input[:owner], input[:product_id], input[:content_id], true)
13
14
  end
14
15
  end
15
16
  end
@@ -7,11 +7,13 @@ module Actions
7
7
  param :type
8
8
  param :label
9
9
  param :content_url
10
+ param :owner
10
11
  end
11
12
 
12
13
  def run
13
14
  output[:response] = ::Katello::Resources::Candlepin::Content.
14
- create(name: input[:name],
15
+ create(input[:owner],
16
+ name: input[:name],
15
17
  contentUrl: input[:content_url],
16
18
  type: input[:type],
17
19
  label: input[:label],
@@ -4,11 +4,12 @@ module Actions
4
4
  class ContentDestroy < Candlepin::Abstract
5
5
  input_format do
6
6
  param :content_id
7
+ param :owner
7
8
  end
8
9
 
9
10
  def run
10
11
  output[:response] = ::Katello::Resources::Candlepin::Content.
11
- destroy(input[:content_id])
12
+ destroy(input[:owner], input[:content_id])
12
13
  end
13
14
  end
14
15
  end
@@ -5,11 +5,12 @@ module Actions
5
5
  input_format do
6
6
  param :product_id
7
7
  param :content_id
8
+ param :owner
8
9
  end
9
10
 
10
11
  def run
11
12
  output[:response] = ::Katello::Resources::Candlepin::Product.
12
- remove_content(input[:product_id], input[:content_id])
13
+ remove_content(input[:owner], input[:product_id], input[:content_id])
13
14
  end
14
15
  end
15
16
  end