katello 3.2.1.1 → 3.3.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 (486) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/katello.global.js +1 -1
  3. data/app/assets/javascripts/katello/common/vendor.js +0 -1
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +20 -12
  5. data/app/controllers/katello/api/v2/activation_keys_controller.rb +2 -2
  6. data/app/controllers/katello/api/v2/api_controller.rb +4 -2
  7. data/app/controllers/katello/api/v2/capsule_content_controller.rb +14 -14
  8. data/app/controllers/katello/api/v2/capsules_controller.rb +3 -3
  9. data/app/controllers/katello/api/v2/content_view_components_controller.rb +100 -0
  10. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +3 -2
  11. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +19 -6
  13. data/app/controllers/katello/api/v2/content_views_controller.rb +3 -4
  14. data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
  15. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -1
  16. data/app/controllers/katello/api/v2/host_collections_controller.rb +2 -2
  17. data/app/controllers/katello/api/v2/host_tracer_controller.rb +31 -0
  18. data/app/controllers/katello/api/v2/packages_controller.rb +53 -1
  19. data/app/controllers/katello/api/v2/products_controller.rb +1 -1
  20. data/app/controllers/katello/api/v2/puppet_modules_controller.rb +8 -0
  21. data/app/controllers/katello/api/v2/repositories_controller.rb +9 -4
  22. data/app/controllers/katello/api/v2/subscriptions_controller.rb +3 -6
  23. data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -1
  24. data/app/controllers/katello/application_controller.rb +0 -4
  25. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +11 -3
  26. data/app/controllers/katello/concerns/api/v2/smart_proxies_controller_extensions.rb +35 -0
  27. data/app/controllers/katello/providers_controller.rb +2 -2
  28. data/app/controllers/katello/remote_execution_controller.rb +2 -0
  29. data/app/helpers/katello/concerns/foreman_docker/container_steps_helper_extensions.rb +2 -2
  30. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +23 -0
  31. data/app/lib/actions/candlepin/candlepin_listening_service.rb +8 -2
  32. data/app/lib/actions/candlepin/owner/destroy_imports.rb +17 -0
  33. data/app/lib/actions/candlepin/owner/import.rb +19 -0
  34. data/app/lib/actions/candlepin/owner/import_products.rb +16 -0
  35. data/app/lib/actions/candlepin/owner/upstream_export.rb +18 -0
  36. data/app/lib/actions/candlepin/owner/upstream_update.rb +17 -0
  37. data/app/lib/actions/katello/activation_key/update.rb +4 -0
  38. data/app/lib/actions/katello/capsule_content/configure_capsule.rb +2 -2
  39. data/app/lib/actions/katello/capsule_content/create_repos.rb +17 -6
  40. data/app/lib/actions/katello/capsule_content/sync.rb +12 -8
  41. data/app/lib/actions/katello/content_view/capsule_generate_and_sync.rb +1 -1
  42. data/app/lib/actions/katello/content_view/promote.rb +5 -62
  43. data/app/lib/actions/katello/content_view/promote_to_environment.rb +75 -0
  44. data/app/lib/actions/katello/content_view/publish.rb +11 -6
  45. data/app/lib/actions/katello/content_view/remove.rb +2 -0
  46. data/app/lib/actions/katello/content_view/remove_from_environment.rb +1 -0
  47. data/app/lib/actions/katello/content_view/remove_version.rb +1 -0
  48. data/app/lib/actions/katello/content_view_version/export.rb +1 -0
  49. data/app/lib/actions/katello/content_view_version/incremental_update.rb +82 -22
  50. data/app/lib/actions/katello/event_queue/monitor.rb +1 -1
  51. data/app/lib/actions/katello/host/attach_subscriptions.rb +2 -2
  52. data/app/lib/actions/katello/host/generate_applicability.rb +1 -1
  53. data/app/lib/actions/katello/host/package/install.rb +4 -0
  54. data/app/lib/actions/katello/host/package/remove.rb +4 -0
  55. data/app/lib/actions/katello/host/package/update.rb +4 -0
  56. data/app/lib/actions/katello/host/package_group/install.rb +4 -0
  57. data/app/lib/actions/katello/host/package_group/remove.rb +4 -0
  58. data/app/lib/actions/katello/host/recalculate_errata_status.rb +20 -0
  59. data/app/lib/actions/katello/host/remove_subscriptions.rb +5 -3
  60. data/app/lib/actions/katello/organization/create.rb +5 -1
  61. data/app/lib/actions/katello/organization/destroy.rb +1 -1
  62. data/app/lib/actions/katello/organization/manifest_delete.rb +27 -0
  63. data/app/lib/actions/katello/organization/manifest_import.rb +32 -0
  64. data/app/lib/actions/katello/organization/manifest_refresh.rb +41 -0
  65. data/app/lib/actions/katello/product/content_create.rb +15 -10
  66. data/app/lib/actions/katello/repository/capsule_generate_and_sync.rb +1 -1
  67. data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -1
  68. data/app/lib/actions/katello/repository/clone_to_version.rb +17 -13
  69. data/app/lib/actions/katello/repository/create.rb +3 -1
  70. data/app/lib/actions/katello/repository/filtered_index_content.rb +4 -4
  71. data/app/lib/actions/katello/repository/import_applicability.rb +1 -1
  72. data/app/lib/actions/katello/repository/index_errata.rb +1 -1
  73. data/app/lib/actions/katello/repository/index_package_groups.rb +1 -1
  74. data/app/lib/actions/katello/repository/refresh_repository.rb +2 -1
  75. data/app/lib/actions/katello/sync_plan/add_products.rb +4 -0
  76. data/app/lib/actions/pulp/consumer.rb +19 -1
  77. data/app/lib/actions/pulp/repository/create.rb +10 -0
  78. data/app/lib/actions/pulp/repository/destroy.rb +3 -0
  79. data/app/lib/actions/pulp/repository/refresh.rb +1 -1
  80. data/app/lib/katello/http_resource.rb +6 -1
  81. data/app/lib/katello/resources/candlepin.rb +17 -5
  82. data/app/lib/katello/util/cdn_var_substitutor.rb +3 -3
  83. data/app/lib/katello/validators/content_view_erratum_filter_rule_validator.rb +2 -2
  84. data/app/models/katello/concerns/content_facet_host_extensions.rb +27 -3
  85. data/app/models/katello/concerns/environment_extensions.rb +1 -1
  86. data/app/models/katello/concerns/host_managed_extensions.rb +11 -14
  87. data/app/models/katello/concerns/location_extensions.rb +5 -0
  88. data/app/models/katello/concerns/pulp_database_unit.rb +31 -7
  89. data/app/models/katello/concerns/redhat_extensions.rb +1 -1
  90. data/app/models/katello/concerns/setting_extensions.rb +6 -0
  91. data/app/models/katello/concerns/smart_proxy_extensions.rb +18 -0
  92. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -2
  93. data/app/models/katello/content_facet_applicable_rpm.rb +8 -0
  94. data/app/models/katello/content_view.rb +103 -30
  95. data/app/models/katello/content_view_component.rb +64 -7
  96. data/app/models/katello/content_view_erratum_filter_rule.rb +8 -0
  97. data/app/models/katello/content_view_history.rb +14 -5
  98. data/app/models/katello/content_view_package_filter.rb +4 -0
  99. data/app/models/katello/content_view_version.rb +15 -3
  100. data/app/models/katello/docker_manifest.rb +1 -1
  101. data/app/models/katello/docker_tag.rb +16 -10
  102. data/app/models/katello/errata_status.rb +9 -3
  103. data/app/models/katello/erratum.rb +2 -1
  104. data/app/models/katello/events/{import_host_errata.rb → import_host_applicability.rb} +2 -2
  105. data/app/models/katello/glue.rb +0 -169
  106. data/app/models/katello/glue/candlepin/content.rb +2 -0
  107. data/app/models/katello/glue/candlepin/pool.rb +8 -5
  108. data/app/models/katello/glue/candlepin/product.rb +14 -3
  109. data/app/models/katello/glue/provider.rb +1 -170
  110. data/app/models/katello/glue/pulp/repo.rb +41 -233
  111. data/app/models/katello/glue/pulp/repos.rb +0 -21
  112. data/app/models/katello/host/content_facet.rb +96 -27
  113. data/app/models/katello/host/subscription_facet.rb +9 -6
  114. data/app/models/katello/host_tracer.rb +14 -0
  115. data/app/models/katello/input_template_renderer.rb +7 -0
  116. data/app/models/katello/kt_environment.rb +0 -16
  117. data/app/models/katello/ping.rb +62 -51
  118. data/app/models/katello/pool.rb +1 -1
  119. data/app/models/katello/repository.rb +12 -6
  120. data/app/models/katello/rhsm_fact_name.rb +4 -0
  121. data/app/models/katello/rpm.rb +41 -4
  122. data/app/models/setting/content.rb +12 -4
  123. data/app/overrides/add_smart_proxy_form.rb +5 -0
  124. data/app/services/katello/pulp/consumer.rb +6 -0
  125. data/app/services/katello/pulp/docker_tag.rb +7 -0
  126. data/app/services/katello/pulp/pulp_content_unit.rb +35 -8
  127. data/app/services/katello/pulp/server.rb +4 -0
  128. data/app/views/dashboard/_subscription_widget.html.erb +7 -6
  129. data/app/views/foreman/job_templates/restart_services.erb +17 -0
  130. data/app/views/foreman_docker/containers/steps/_katello_container.html.erb +2 -2
  131. data/app/views/katello/api/v2/content_facet/base.json.rabl +8 -0
  132. data/app/views/katello/api/v2/content_view_components/index.json.rabl +7 -0
  133. data/app/views/katello/api/v2/content_view_components/show.json.rabl +29 -0
  134. data/app/views/katello/api/v2/content_view_filter_rules/show.json.rabl +1 -0
  135. data/app/views/katello/api/v2/content_view_histories/show.json.rabl +1 -5
  136. data/app/views/katello/api/v2/content_views/base.json.rabl +12 -2
  137. data/app/views/katello/api/v2/docker_manifests/show.json.rabl +3 -5
  138. data/app/views/katello/api/v2/docker_tags/_base.json.rabl +2 -2
  139. data/app/views/katello/api/v2/host_tracer/base.json.rabl +6 -0
  140. data/app/views/katello/api/v2/host_tracer/index.json.rabl +7 -0
  141. data/app/views/katello/api/v2/packages/base.json.rabl +3 -0
  142. data/app/views/katello/api/v2/products/show.json.rabl +2 -6
  143. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -0
  144. data/app/views/overrides/smart_proxies/_download_policy.erb +3 -0
  145. data/app/views/overrides/smart_proxies/_environment_tab_pane.html.erb +1 -1
  146. data/config/locales/compare_upstream.sh +0 -0
  147. data/config/locales/update.sh +0 -0
  148. data/config/routes.rb +1 -33
  149. data/config/routes/api/rhsm.rb +1 -1
  150. data/config/routes/api/v2.rb +13 -61
  151. data/config/routes/overrides.rb +3 -0
  152. data/db/migrate/20160520175340_add_host_applicable_package.rb +11 -0
  153. data/db/migrate/20160728005028_add_latest_version_to_content_view_component.rb +9 -0
  154. data/db/migrate/20160907231049_add_username_password_to_repository.rb +6 -0
  155. data/db/migrate/20160908234510_add_rpm_nvra.rb +10 -0
  156. data/db/migrate/20160923143611_add_action_to_content_view_histories.rb +34 -0
  157. data/db/migrate/20160930121245_content_view_force_puppet_env.rb +5 -0
  158. data/db/migrate/20160930150810_add_smart_proxy_download_policy.rb +14 -0
  159. data/db/migrate/20161003130853_add_architecture_to_katello_content_view_package_filter_rule.rb +5 -0
  160. data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +41 -0
  161. data/db/migrate/20161031204903_add_tracer_support.rb +13 -0
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +1 -6
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.module.js +0 -108
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +127 -0
  165. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-host-collections.controller.js +7 -7
  166. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +4 -4
  167. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-associations.controller.js +3 -3
  168. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-copy.controller.js +30 -0
  169. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +1 -15
  170. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-host-collections.controller.js +7 -7
  171. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-product-details.controller.js +1 -1
  172. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +4 -4
  173. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-add-subscriptions.html +11 -14
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +5 -10
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-copy.html +17 -0
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +77 -107
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections-table.html +30 -48
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections.html +4 -5
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +96 -107
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-products.html +1 -1
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions-list.html +17 -32
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-subscriptions.html +4 -4
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/new-activation-key.controller.js +2 -3
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/new/views/activation-key-new.html +65 -82
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +34 -7
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -3
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +4 -4
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/sync-state.service.js +1 -1
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-action-errata.controller.js +2 -2
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-errata.html +5 -5
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-host-collections.html +3 -3
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-packages.html +16 -16
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/bulk-actions-subscriptions.html +1 -1
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register.controller.js +2 -2
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.module.js +37 -7
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +2 -0
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +14 -0
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +51 -0
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +37 -0
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +18 -44
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +69 -0
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +14 -13
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +67 -0
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +65 -0
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +52 -0
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages.html +9 -119
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-traces.html +76 -0
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-host-collections.controller.js +2 -2
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-host-collections.controller.js +2 -2
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-add-subscriptions.html +1 -1
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +32 -8
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +3 -3
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-products.html +1 -1
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions-list.html +2 -2
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/host-collections-table.html +1 -1
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts-table-full.html +15 -1
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -5
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-view.factory.js +3 -3
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +0 -1
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +11 -6
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-deletion.controller.js +1 -1
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-activation-keys.controller.js +2 -2
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-content-hosts.controller.js +1 -1
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-environments.controller.js +3 -3
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion.controller.js +2 -2
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-activation-keys.html +1 -1
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-component.factory.js +32 -0
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/{content-view-composite-available-content-views.controller.js → components/content-view-composite-available-content-views.controller.js} +21 -22
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +66 -0
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/{views → components/views}/content-view-composite-available-content-views.html +18 -18
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/views/content-view-composite-content-views-list.html +86 -0
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/{views → components/views}/content-view-composite.html +4 -4
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +30 -8
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +7 -4
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-repositories.service.js +2 -2
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +2 -2
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-filter.controller.js +12 -1
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata-filter.html +1 -2
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/date-type-errata.html +2 -2
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/errata-filter-details.html +6 -4
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filter-repositories.html +3 -3
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html +1 -1
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html +1 -1
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +16 -1
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +2 -0
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/views/content-view-history.html +1 -1
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-module-names.html +2 -3
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/views/content-view-puppet-modules.html +1 -1
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +5 -5
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +7 -4
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html +3 -0
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +14 -0
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-ostree-repositories.html +5 -2
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +11 -0
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +1 -1
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +8 -5
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +3 -7
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/content-view-new.controller.js +1 -1
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +1 -1
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +1 -1
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/{docker-tags-details.controller.js → docker-tag-details.controller.js} +5 -3
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-details.html +32 -0
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-environments.html +50 -0
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-info.html +42 -0
  265. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.controller.js +1 -1
  266. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +33 -18
  267. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +31 -6
  268. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment.controller.js +12 -4
  269. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html +1 -1
  270. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html +1 -1
  271. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +1 -1
  272. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +1 -1
  273. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-packages.html +1 -1
  274. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-puppet-modules.html +1 -1
  275. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-repositories.html +1 -1
  276. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment.html +53 -49
  277. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/new-environment.html +1 -1
  278. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +2 -2
  279. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/errata-content-hosts.controller.js +1 -1
  280. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/errata-details-repositories.controller.js +3 -3
  281. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-content-hosts.html +1 -1
  282. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/errata-details-repositories.html +3 -3
  283. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +6 -2
  284. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata.html +4 -4
  285. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/errata.html +4 -4
  286. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-details.controller.js +1 -5
  287. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-products.controller.js +35 -0
  288. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-repositories.controller.js +35 -0
  289. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-details.html +40 -48
  290. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-info.html +34 -22
  291. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-products.html +30 -29
  292. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/views/gpg-key-repositories.html +30 -34
  293. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-key.factory.js +21 -1
  294. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.controller.js +0 -19
  295. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.module.js +0 -76
  296. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-keys.routes.js +76 -0
  297. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/new-gpg-key.controller.js +10 -11
  298. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/new-gpg-key.html +44 -0
  299. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys.html +36 -10
  300. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-add-hosts.controller.js +4 -4
  301. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-copy.controller.js +30 -0
  302. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-details.controller.js +10 -17
  303. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-hosts.controller.js +3 -3
  304. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-add-hosts.html +7 -9
  305. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-copy.html +17 -0
  306. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-details.html +55 -94
  307. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +8 -10
  308. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts.html +4 -4
  309. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-info.html +91 -58
  310. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.controller.js +4 -12
  311. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.module.js +0 -85
  312. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.routes.js +80 -0
  313. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/host-collection-form.controller.js +1 -1
  314. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/new-host-collection.controller.js +22 -2
  315. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/new-host-collection.html +53 -0
  316. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections.html +36 -7
  317. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-package.factory.js +2 -1
  318. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-traces.factory.js +18 -0
  319. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/katello-features.run.js +4 -4
  320. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +1 -0
  321. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/views/organization-selector.html +1 -1
  322. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branches-details-repositories.controller.js +3 -3
  323. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branches-details-repositories.html +1 -1
  324. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/{package-details-repositories.controller.js → package-repositories.controller.js} +10 -10
  325. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/{package-details.controller.js → package.controller.js} +9 -7
  326. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/{packages-details-dependencies.html → package-dependencies.html} +0 -0
  327. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-files.html +11 -0
  328. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +81 -0
  329. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/{packages-details-repositories.html → package-repositories.html} +10 -12
  330. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package.html +44 -0
  331. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/package.factory.js +6 -0
  332. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.controller.js +18 -4
  333. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.routes.js +37 -35
  334. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages.html +53 -8
  335. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/partials/sync-status.html +17 -19
  336. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details-info.controller.js +3 -12
  337. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details.controller.js +14 -8
  338. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +30 -24
  339. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/details/repository-details-info.controller.js +4 -82
  340. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/details/repository-details-manage-content.controller.js +17 -9
  341. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +98 -0
  342. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +78 -0
  343. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +299 -0
  344. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +71 -0
  345. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-ostree-branches.html +46 -0
  346. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-package-groups.html +18 -0
  347. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +60 -0
  348. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +68 -0
  349. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-tasks.html +4 -0
  350. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/download-policy.service.js +0 -0
  351. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/new/new-repository.controller.js +27 -14
  352. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories/new/views/repository-new.html → products/details/repositories/new/views/new-repository.html} +31 -14
  353. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/repositories.module.js +1 -0
  354. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +138 -0
  355. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/{repositories → products/details/repositories}/repository.factory.js +0 -0
  356. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +182 -0
  357. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-details.html +71 -57
  358. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-info.html +66 -85
  359. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-new-sync-plan.html +2 -0
  360. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-tasks.html +1 -1
  361. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-form.controller.js +3 -6
  362. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +5 -3
  363. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-base.html +8 -13
  364. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +135 -144
  365. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html +19 -20
  366. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/new-product.controller.js +1 -1
  367. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/product-form.controller.js +3 -4
  368. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new-form.html +4 -8
  369. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/views/product-new.html +5 -19
  370. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product-bulk-action.factory.js +19 -0
  371. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product.factory.js +1 -21
  372. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products-bulk-action.controller.js +93 -0
  373. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +8 -12
  374. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.module.js +4 -240
  375. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +132 -0
  376. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +97 -15
  377. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/views/puppet-modules-details-repositories.html +1 -1
  378. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/views/puppet-modules.html +1 -1
  379. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/{subscription-associations-activation-keys.controller.js → subscription-activation-keys.controller.js} +5 -3
  380. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/{subscription-associations-content-hosts.controller.js → subscription-content-hosts.controller.js} +5 -3
  381. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/{subscription-associations-activation-keys.html → subscription-activation-keys.html} +1 -1
  382. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/{subscription-associations-content-hosts.html → subscription-content-hosts.html} +0 -0
  383. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-details.html +40 -52
  384. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-info.html +72 -98
  385. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-products.html +1 -1
  386. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/manifest-details.controller.js +1 -1
  387. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +2 -2
  388. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest.html +26 -41
  389. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.controller.js +7 -6
  390. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.module.js +0 -107
  391. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.routes.js +110 -0
  392. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions.html +49 -8
  393. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-add-products.controller.js +15 -11
  394. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +2 -2
  395. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details.controller.js +32 -29
  396. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-products.controller.js +17 -12
  397. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html +61 -54
  398. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +62 -65
  399. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html +63 -7
  400. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/new-sync-plan.controller.js +3 -6
  401. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan-form.html +19 -10
  402. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/views/new-sync-plan.html +7 -14
  403. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plan.factory.js +1 -3
  404. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.controller.js +4 -15
  405. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.module.js +2 -91
  406. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.routes.js +84 -0
  407. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans.html +40 -8
  408. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task-input-reduce.filter.js +1 -1
  409. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task.factory.js +9 -2
  410. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-nutupane.factory.js +1 -1
  411. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks-table.directive.js +1 -1
  412. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/task-details.html +1 -1
  413. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/tasks-table.html +1 -1
  414. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/views/user-tasks-table.html +1 -1
  415. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +3 -2
  416. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/errata.scss +1 -1
  417. data/engines/bastion_katello/bastion_katello.gemspec +1 -1
  418. data/engines/bastion_katello/lib/bastion_katello/engine.rb +4 -1
  419. data/lib/katello/engine.rb +4 -13
  420. data/lib/katello/permissions/activation_key_permissions.rb +3 -2
  421. data/lib/katello/permissions/capsule_content_permissions.rb +2 -1
  422. data/lib/katello/permissions/content_view_permissions.rb +8 -6
  423. data/lib/katello/permissions/gpg_key_permissions.rb +1 -2
  424. data/lib/katello/permissions/host_collections_permissions.rb +2 -3
  425. data/lib/katello/permissions/host_permissions.rb +9 -2
  426. data/lib/katello/permissions/lifecycle_environment_permissions.rb +2 -3
  427. data/lib/katello/permissions/product_permissions.rb +10 -7
  428. data/lib/katello/permissions/roles_permissions.rb +5 -0
  429. data/lib/katello/permissions/sync_plan_permissions.rb +1 -2
  430. data/lib/katello/plugin.rb +28 -3
  431. data/lib/katello/tasks/import_applicability.rake +12 -0
  432. data/lib/katello/tasks/reimport.rake +7 -9
  433. data/lib/katello/tasks/repository.rake +105 -0
  434. data/lib/katello/tasks/unify_hosts.rake +73 -25
  435. data/lib/katello/version.rb +1 -1
  436. metadata +119 -81
  437. data/app/controllers/katello/api/v2/uebercerts_controller.rb +0 -17
  438. data/app/controllers/katello/organizations_controller.rb +0 -32
  439. data/app/lib/actions/katello/provider/manifest_delete.rb +0 -29
  440. data/app/lib/actions/katello/provider/manifest_import.rb +0 -34
  441. data/app/lib/actions/katello/provider/manifest_refresh.rb +0 -30
  442. data/app/lib/katello/glue/queue.rb +0 -69
  443. data/app/lib/katello/glue/task.rb +0 -44
  444. data/db/seeds.d/108-ensure_sync_notification.rb +0 -11
  445. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys-table-collapsed.html +0 -19
  446. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys-table-full.html +0 -24
  447. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-composite-content-views-list.controller.js +0 -63
  448. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-composite-content-views-list.html +0 -80
  449. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tags-details.html +0 -72
  450. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags-table-collapsed.html +0 -19
  451. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags-table-full.html +0 -25
  452. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/views/gpg-key-new.html +0 -72
  453. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys-table-collapsed.html +0 -17
  454. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/views/gpg-keys-table-full.html +0 -24
  455. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-actions.html +0 -36
  456. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/host-collection-new-form.html +0 -45
  457. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/new/views/host-collection-new.html +0 -21
  458. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections-table-collapsed.html +0 -19
  459. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/views/host-collections-table-full.html +0 -28
  460. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details-files.html +0 -11
  461. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details-info.html +0 -85
  462. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/packages-details.html +0 -59
  463. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages-table-collapsed.html +0 -19
  464. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/views/packages-table-full.html +0 -22
  465. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-action-sync-plan.controller.js +0 -53
  466. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-action-sync.controller.js +0 -26
  467. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-action.controller.js +0 -64
  468. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/bulk-actions-sync-plan.html +0 -65
  469. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/bulk-actions-sync.html +0 -38
  470. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/bulk-actions.html +0 -78
  471. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-repositories.html +0 -190
  472. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products-table-collapsed.html +0 -20
  473. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products-table-full.html +0 -34
  474. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-info.html +0 -390
  475. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-docker-manifests.html +0 -77
  476. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-ostree-branches.html +0 -60
  477. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-package-groups.html +0 -25
  478. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-packages.html +0 -72
  479. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repositories/details/views/repository-manage-puppet-modules.html +0 -82
  480. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions-table-collapsed.html +0 -26
  481. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/subscriptions-table-full.html +0 -34
  482. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products-table.html +0 -80
  483. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans-table-collapsed.html +0 -21
  484. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/views/sync-plans-table-full.html +0 -36
  485. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/gpg-keys.scss +0 -34
  486. data/lib/katello/tasks/regenerate_repo_metadata.rake +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ff65266591dd0156050b2e683036aa600f7f8389
4
- data.tar.gz: 8ca255841000fd84c6695602c1afc1e39c639325
3
+ metadata.gz: 83aa0962c7ecb2acca38f0b99e6d3a4fccc8a0fc
4
+ data.tar.gz: 265738c8590b218ed3eaf3e4fc11b271dc69b1a0
5
5
  SHA512:
6
- metadata.gz: aafaab2653309b653b2c908e9a911a58604ae73c48164488e6adb150f4b1710b151b7d0c2a4b9fe9772c3f86a0c92c1077eb4095afffcb3dd707cdbdb2f7cbdc
7
- data.tar.gz: 6d5e5aaf8807cc8d9ff68b4fa29341cb039061f21f32bfdf79db9b4c2cacd47122622b587e7ea04420349bb977b27c09f7cf03195b4743207466d0d236c77a03
6
+ metadata.gz: de5e94136ff03c5896eed77576164ebf093468745543c781c3c5a6dc1534f56670e10586540d6e8267072045e4d8432e0493382d79d057cc21dcf1033828e50c
7
+ data.tar.gz: 66c60ef5dc24b6bd9c9f926d8a932383c96b7f4727c0b9d198b76fb5567d736e5607116782a9751edfe5a38f5e0edd0fca39c8ca35bc23da9069f5808aa86483
@@ -4,7 +4,7 @@ var KT = {};
4
4
  //i18n global variable
5
5
  var katelloI18n = {};
6
6
 
7
- //Setup underscorejs
7
+ //Setup lodash
8
8
  KT.utils = _.noConflict();
9
9
 
10
10
  _ = KT.utils;
@@ -1,4 +1,3 @@
1
- //= require "bastion/underscore/underscore"
2
1
  //= require "jquery.ui.dialog"
3
2
  //= require "jquery.ui.sortable"
4
3
  //= require "jquery.ui.tabs"
@@ -9,13 +9,13 @@ module Katello
9
9
  around_action :repackage_message
10
10
  before_action :find_host, :only => [:consumer_show, :consumer_destroy, :consumer_checkin, :enabled_repos,
11
11
  :upload_package_profile, :regenerate_identity_certificates, :facts,
12
- :available_releases, :serials]
12
+ :available_releases, :serials, :upload_tracer_profile]
13
13
  before_action :authorize, :only => [:consumer_create, :list_owners, :rhsm_index]
14
- before_action :authorize_client_or_user, :only => [:consumer_show, :upload_package_profile, :regenerate_identity_certificates]
14
+ before_action :authorize_client_or_user, :only => [:consumer_show, :upload_package_profile, :regenerate_identity_certificates, :upload_tracer_profile, :facts]
15
15
  before_action :authorize_client_or_admin, :only => [:hypervisors_update]
16
16
  before_action :authorize_proxy_routes, :only => [:get, :post, :put, :delete]
17
17
  before_action :authorize_client, :only => [:consumer_destroy, :consumer_checkin,
18
- :enabled_repos, :facts, :available_releases]
18
+ :enabled_repos, :available_releases]
19
19
 
20
20
  before_action :add_candlepin_version_header
21
21
 
@@ -138,6 +138,15 @@ module Katello
138
138
  render :json => Resources::Candlepin::Consumer.get(@host.subscription_facet.uuid)
139
139
  end
140
140
 
141
+ api :PUT, "/consumers/:id/tracer", N_("Update services requiring restart")
142
+ param :traces, Hash, :required => true
143
+ def upload_tracer_profile
144
+ User.as_anonymous_admin do
145
+ @host.import_tracer_profile(params[:traces])
146
+ end
147
+ render :json => Resources::Candlepin::Consumer.get(@host.subscription_facet.uuid)
148
+ end
149
+
141
150
  def available_releases
142
151
  render :json => @host.content_facet.try(:available_releases) || []
143
152
  end
@@ -236,11 +245,12 @@ module Katello
236
245
  #api :GET, "/status", N_("Shows version information")
237
246
  #description N_("This service is available for unauthenticated users")
238
247
  def server_status
239
- status = { :managerCapabilities => Resources::Candlepin::CandlepinPing.ping['managerCapabilities'],
240
- :result => Resources::Candlepin::CandlepinPing.ping['result'],
241
- :rulesSource => Resources::Candlepin::CandlepinPing.ping['rulesSource'],
242
- :rulesVersion => Resources::Candlepin::CandlepinPing.ping['rulesVersion'],
243
- :standalone => Resources::Candlepin::CandlepinPing.ping['standalone'],
248
+ candlepin_response = Resources::Candlepin::CandlepinPing.ping
249
+ status = { :managerCapabilities => candlepin_response['managerCapabilities'],
250
+ :result => candlepin_response['result'],
251
+ :rulesSource => candlepin_response['rulesSource'],
252
+ :rulesVersion => candlepin_response['rulesVersion'],
253
+ :standalone => candlepin_response['standalone'],
244
254
  :timeUTC => Time.now.getutc,
245
255
  :version => Katello::VERSION }
246
256
 
@@ -248,10 +258,8 @@ module Katello
248
258
  end
249
259
 
250
260
  def facts
251
- User.as_anonymous_admin do
252
- sync_task(::Actions::Katello::Host::Update, @host, rhsm_params)
253
- update_host_registered_through(@host, request.headers)
254
- end
261
+ sync_task(::Actions::Katello::Host::Update, @host, rhsm_params)
262
+ update_host_registered_through(@host, request.headers)
255
263
  render :json => {:content => _("Facts successfully updated.")}, :status => 200
256
264
  end
257
265
 
@@ -24,7 +24,7 @@ module Katello
24
24
  param_group :search, Api::V2::ApiController
25
25
  def index
26
26
  activation_key_includes = [:content_view, :environment, :host_collections, :organization]
27
- respond(:collection => scoped_search(index_relation.uniq, :name, :desc, :includes => activation_key_includes))
27
+ respond(:collection => scoped_search(index_relation.uniq, :name, :asc, :includes => activation_key_includes))
28
28
  end
29
29
 
30
30
  api :POST, "/activation_keys", N_("Create an activation key")
@@ -115,7 +115,7 @@ module Katello
115
115
  scoped = scoped.where(:organization_id => @activation_key.organization)
116
116
  scoped = scoped.where(:name => params[:name]) if params[:name]
117
117
 
118
- respond_for_index(:collection => scoped_search(scoped, :name, :desc, :resource_class => HostCollection))
118
+ respond_for_index(:collection => scoped_search(scoped, :name, :asc, :resource_class => HostCollection))
119
119
  end
120
120
 
121
121
  api :GET, "/activation_keys/:id/releases", N_("Show release versions available for an activation key")
@@ -110,8 +110,10 @@ module Katello
110
110
 
111
111
  def find_organization
112
112
  @organization = Organization.current || find_optional_organization
113
- fail HttpErrors::NotFound, _("One of parameters [ %s ] required but not specified.") %
114
- organization_id_keys.join(", ") if @organization.nil?
113
+ if @organization.nil?
114
+ fail HttpErrors::NotFound, _("One of parameters [ %s ] required but not specified.") %
115
+ organization_id_keys.join(", ")
116
+ end
115
117
  @organization
116
118
  end
117
119
 
@@ -9,45 +9,45 @@ module Katello
9
9
  before_action :find_optional_organization, :only => [:sync_status]
10
10
 
11
11
  def_param_group :lifecycle_environments do
12
- param :id, Integer, :desc => N_('Id of the capsule'), :required => true
12
+ param :id, Integer, :desc => N_('Id of the smart proxy'), :required => true
13
13
  param :organization_id, Integer, :desc => N_('Id of the organization to limit environments on')
14
14
  end
15
15
 
16
16
  def_param_group :update_lifecycle_environments do
17
- param :id, Integer, :desc => N_('Id of the capsule'), :required => true
17
+ param :id, Integer, :desc => N_('Id of the smart proxy'), :required => true
18
18
  param :environment_id, Integer, :desc => N_('Id of the lifecycle environment'), :required => true
19
19
  end
20
20
 
21
- api :GET, '/capsules/:id/content/lifecycle_environments', N_('List the lifecycle environments attached to the capsule')
21
+ api :GET, '/capsules/:id/content/lifecycle_environments', N_('List the lifecycle environments attached to the smart proxy')
22
22
  param_group :lifecycle_environments
23
23
  def lifecycle_environments
24
24
  environments = capsule_content.lifecycle_environments(params[:organization_id]).readable
25
25
  respond_for_lifecycle_environments_index(environments)
26
26
  end
27
27
 
28
- api :GET, '/capsules/:id/content/available_lifecycle_environments', N_('List the lifecycle environments not attached to the capsule')
28
+ api :GET, '/capsules/:id/content/available_lifecycle_environments', N_('List the lifecycle environments not attached to the smart proxy')
29
29
  param_group :lifecycle_environments
30
30
  def available_lifecycle_environments
31
31
  environments = capsule_content.available_lifecycle_environments(params[:organization_id]).readable
32
32
  respond_for_lifecycle_environments_index(environments)
33
33
  end
34
34
 
35
- api :POST, '/capsules/:id/content/lifecycle_environments', N_('Add lifecycle environments to the capsule')
35
+ api :POST, '/capsules/:id/content/lifecycle_environments', N_('Add lifecycle environments to the smart proxy')
36
36
  param_group :update_lifecycle_environments
37
37
  def add_lifecycle_environment
38
38
  capsule_content.add_lifecycle_environment(@environment)
39
39
  respond_for_lifecycle_environments_index(capsule_content.lifecycle_environments)
40
40
  end
41
41
 
42
- api :DELETE, '/capsules/:id/content/lifecycle_environments/:environment_id', N_('Remove lifecycle environments from the capsule')
42
+ api :DELETE, '/capsules/:id/content/lifecycle_environments/:environment_id', N_('Remove lifecycle environments from the smart proxy')
43
43
  param_group :update_lifecycle_environments
44
44
  def remove_lifecycle_environment
45
45
  capsule_content.remove_lifecycle_environment(@environment)
46
46
  respond_for_lifecycle_environments_index(capsule_content.lifecycle_environments)
47
47
  end
48
48
 
49
- api :POST, '/capsules/:id/content/sync', N_('Synchronize the content to the capsule')
50
- param :id, Integer, :desc => N_('Id of the capsule'), :required => true
49
+ api :POST, '/capsules/:id/content/sync', N_('Synchronize the content to the smart proxy')
50
+ param :id, Integer, :desc => N_('Id of the smart proxy'), :required => true
51
51
  param :environment_id, Integer, :desc => N_('Id of the environment to limit the synchronization on')
52
52
  def sync
53
53
  find_environment if params[:environment_id]
@@ -55,20 +55,20 @@ module Katello
55
55
  respond_for_async :resource => task
56
56
  end
57
57
 
58
- api :GET, '/capsules/:id/content/sync', N_('Get current capsule synchronization status')
59
- param :id, Integer, :desc => N_('Id of the capsule'), :required => true
58
+ api :GET, '/capsules/:id/content/sync', N_('Get current smart proxy synchronization status')
59
+ param :id, Integer, :desc => N_('Id of the smart proxy'), :required => true
60
60
  param :organization_id, Integer, :desc => N_('Id of the organization to get the status for'), :required => false
61
61
  def sync_status
62
62
  @capsule_content = capsule_content
63
63
  @lifecycle_environments = @capsule_content.lifecycle_environments(@organization)
64
64
  end
65
65
 
66
- api :DELETE, '/capsules/:id/content/sync', N_('Cancel running capsule synchronization.')
67
- param :id, Integer, :desc => N_('Id of the capsule'), :required => true
66
+ api :DELETE, '/capsules/:id/content/sync', N_('Cancel running smart proxy synchronization.')
67
+ param :id, Integer, :desc => N_('Id of the smart proxy'), :required => true
68
68
  def cancel_sync
69
69
  tasks = capsule_content.cancel_sync
70
70
  if tasks.empty?
71
- render_message _('There\'s no running synchronization for this capsule.')
71
+ render_message _('There\'s no running synchronization for this smart proxy.')
72
72
  else
73
73
  render_message _('Trying to cancel the synchronization...')
74
74
  end
@@ -88,7 +88,7 @@ module Katello
88
88
  def find_capsule
89
89
  @capsule = SmartProxy.authorized(:manage_capsule_content).find(params[:id])
90
90
  unless @capsule && @capsule.has_feature?(SmartProxy::PULP_NODE_FEATURE)
91
- fail _("This request may only be performed on a Capsule that has the Pulp Node feature.")
91
+ fail _("This request may only be performed on a Smart proxy that has the Pulp Node feature.")
92
92
  end
93
93
  end
94
94
 
@@ -4,7 +4,7 @@ module Katello
4
4
  api_base_url "/katello/api"
5
5
  end
6
6
 
7
- api :GET, '/capsules', 'List all capsules'
7
+ api :GET, '/capsules', 'List all smart proxies that have content'
8
8
  param_group :search, Api::V2::ApiController
9
9
  def index
10
10
  @smart_proxies = SmartProxy.with_content.authorized(:view_smart_proxies).includes(:features).
@@ -12,8 +12,8 @@ module Katello
12
12
  @total = SmartProxy.with_content.authorized(:view_smart_proxies).includes(:features).count
13
13
  end
14
14
 
15
- api :GET, '/capsules/:id', 'Show the capsule details'
16
- param :id, Integer, :desc => 'Id of the capsule', :required => true
15
+ api :GET, '/capsules/:id', 'Show the smart proxy details'
16
+ param :id, Integer, :desc => 'Id of the smart proxy', :required => true
17
17
  def show
18
18
  super
19
19
  end
@@ -0,0 +1,100 @@
1
+ module Katello
2
+ class Api::V2::ContentViewComponentsController < Api::V2::ApiController
3
+ before_action :find_composite_content_view
4
+ before_action :find_content_view_component, :only => [:show, :update]
5
+
6
+ wrap_parameters :include => %w(composite_content_view_id content_view_version_id content_view_id latest)
7
+
8
+ api :GET, "/content_views/:composite_content_view_id/content_view_components",
9
+ N_("List components attached to this content view")
10
+ param :composite_content_view_id, :identifier, :desc => N_("composite content view identifier"), :required => true
11
+ def index
12
+ respond :collection => index_response
13
+ end
14
+
15
+ def index_response
16
+ results = @view.content_view_components
17
+ {
18
+ :results => results.uniq,
19
+ :subtotal => results.count,
20
+ :total => results.count
21
+ }
22
+ end
23
+
24
+ api :PUT, "/content_views/:composite_content_view_id/content_view_components/add",
25
+ N_("Add components to the content view")
26
+ param :composite_content_view_id, :identifier, :desc => N_("composite content view identifier"), :required => true
27
+ param :components, Array, :desc => N_("Array of components to add"), :required => true do
28
+ param :content_view_version_id, :identifier, :desc => N_("identifier of the version of the component content view")
29
+ param :content_view_id, :identifier,
30
+ :desc => N_("content view identifier of the component who's latest version is desired")
31
+ param :latest, :bool, :desc => N_("true if the latest version of the component's content view is desired")
32
+ end
33
+ def add_components
34
+ components = params.require(:components).map do |component|
35
+ options = {}
36
+ options[:latest] = ::Foreman::Cast.to_bool(component[:latest]) if component.key?(:latest)
37
+ options.merge(component.slice(:content_view_version_id, :content_view_id))
38
+ end
39
+ @view.add_components(components)
40
+ @view.save!
41
+ respond_for_index(:collection => index_response, :template => "index")
42
+ end
43
+
44
+ api :PUT, "/content_views/:composite_content_view_id/content_view_components/remove",
45
+ N_("Remove components from the content view")
46
+ param :composite_content_view_id, :identifier, :desc => N_("composite content view identifier"), :required => true
47
+ param :component_ids, Array, :desc => N_("Array of content view component IDs to remove. Identifier of the component association"), :required => true
48
+ def remove_components
49
+ @view.remove_components(params.require(:component_ids))
50
+ @view.save!
51
+ respond_for_index(:collection => index_response, :template => "index")
52
+ end
53
+
54
+ api :GET, "/content_views/:composite_content_view_id/content_view_components/:id", N_("Show a content view component")
55
+ param :composite_content_view_id, :number, :desc => N_("composite content view numeric identifier"), :required => true
56
+ param :id, :identifier, :desc => N_("content view component ID. Identifier of the component association"), :required => true
57
+ def show
58
+ respond :resource => @component
59
+ end
60
+
61
+ api :PUT, "/content_views/:composite_content_view_id/content_view_components/:id",
62
+ N_("Update a component associated with the content view")
63
+ param :composite_content_view_id, :identifier, :desc => N_("composite content view identifier"), :required => true
64
+ param :id, :identifier, :desc => N_("content view component ID. Identifier of the component association"), :required => true
65
+ param :content_view_version_id, :identifier, :desc => N_("identifier of the version of the component content view")
66
+ param :latest, :bool, :desc => N_("true if the latest version of the components content view is desired")
67
+ def update
68
+ cvv_id = component_params[:content_view_version_id]
69
+ if component_params.key?(:latest) && component_params.key?(:content_view_version_id)
70
+ latest = ::Foreman::Cast.to_bool(component_params[:latest])
71
+ if latest && cvv_id.present?
72
+ fail HttpErrors::UnprocessableEntity,
73
+ _(" Either select the latest content view or the content view version. Cannot set both.")
74
+ end
75
+ end
76
+ if cvv_id.present?
77
+ @component.update_attributes!(:content_view_version_id => cvv_id, :latest => false)
78
+ elsif component_params.key?(:latest)
79
+ latest = ::Foreman::Cast.to_bool(component_params[:latest])
80
+ @component.update_attributes!(:content_view_version_id => nil, :latest => latest)
81
+ end
82
+ respond :resource => @component
83
+ end
84
+
85
+ private
86
+
87
+ def find_composite_content_view
88
+ @view = ContentView.composite.non_default.find(params[:composite_content_view_id])
89
+ end
90
+
91
+ def find_content_view_component
92
+ @component = ContentViewComponent.find(params[:id])
93
+ end
94
+
95
+ def component_params
96
+ attrs = [:latest, :content_view_version_id, :content_view_id]
97
+ params.require(:content_view_component).permit(*attrs)
98
+ end
99
+ end
100
+ end
@@ -21,6 +21,7 @@ module Katello
21
21
  param :content_view_filter_id, :identifier, :desc => N_("filter identifier"), :required => true
22
22
  param :name, [String, Array], :desc => N_("package and package group names")
23
23
  param :version, String, :desc => N_("package: version")
24
+ param :arch, String, :desc => N_("package: architecture")
24
25
  param :min_version, String, :desc => N_("package: minimum version")
25
26
  param :max_version, String, :desc => N_("package: maximum version")
26
27
  param :errata_id, String, :desc => N_("erratum: id")
@@ -38,7 +39,7 @@ module Katello
38
39
 
39
40
  rules += (rule_params[:errata_ids] || []).map do |errata_id|
40
41
  rule_clazz.create!(rule_params.except(:errata_ids)
41
- .merge(filter: @filter, errata_id: errata_id))
42
+ .merge(filter: @filter, errata_id: errata_id))
42
43
  end
43
44
 
44
45
  if rules.empty?
@@ -117,7 +118,7 @@ module Katello
117
118
  end
118
119
 
119
120
  @rule_params ||= params.fetch(:content_view_filter_rule, {}).
120
- permit(:uuid, :version, :min_version, :max_version,
121
+ permit(:uuid, :version, :min_version, :max_version, :architecture,
121
122
  :errata_id, :start_date, :end_date, :date_type,
122
123
  :types => [], :errata_ids => [], name: [])
123
124
  end
@@ -12,7 +12,7 @@ module Katello
12
12
  param :uuid, String, :desc => N_("the uuid of the puppet module to associate")
13
13
  param_group :search, ::Katello::Api::V2::ApiController
14
14
  def index
15
- respond(:collection => scoped_search(index_relation.uniq, :name, :desc))
15
+ respond(:collection => scoped_search(index_relation.uniq, :name, :asc))
16
16
  end
17
17
 
18
18
  api :POST, "/content_views/:content_view_id/content_view_puppet_modules",
@@ -5,8 +5,9 @@ module Katello
5
5
 
6
6
  before_action :find_content_view_version, :only => [:show, :promote, :destroy, :export]
7
7
  before_action :find_content_view, :except => [:incremental_update]
8
- before_action :find_environment, :only => [:promote, :index]
9
- before_action :authorize_promotable, :only => [:promote]
8
+ before_action :find_environment, :only => [:index]
9
+ before_action :find_environments, :only => [:promote]
10
+ before_action :validate_promotable, :only => [:promote]
10
11
  before_action :authorize_destroy, :only => [:destroy]
11
12
  before_action :find_version_environments, :only => [:incremental_update]
12
13
  before_action :find_puppet_module, :only => [:index]
@@ -49,11 +50,13 @@ module Katello
49
50
  api :POST, "/content_view_versions/:id/promote", N_("Promote a content view version")
50
51
  param :id, :identifier, :desc => N_("Content view version identifier"), :required => true
51
52
  param :force, :bool, :desc => N_("force content view promotion and bypass lifecycle environment restriction")
52
- param :environment_id, :identifier
53
+ param :environment_id, :identifier, :deprecated => true, :desc => N_("LifeCycle Environment identifier")
54
+ param :environment_ids, Array, :desc => N_("Identifiers for Lifecycle Environment")
55
+ param :description, String, :desc => N_("The description for the content view version promotion")
53
56
  def promote
54
57
  is_force = ::Foreman::Cast.to_bool(params[:force])
55
58
  task = async_task(::Actions::Katello::ContentView::Promote,
56
- @version, @environment, is_force)
59
+ @version, @environments, is_force, params[:description])
57
60
  respond_for_async :resource => task
58
61
  end
59
62
 
@@ -249,8 +252,18 @@ module Katello
249
252
  end
250
253
  end
251
254
 
252
- def authorize_promotable
253
- return deny_access unless @environment.promotable_or_removable? && @version.content_view.promotable_or_removable?
255
+ def find_environments
256
+ @environments = if params[:environment_id]
257
+ ::Foreman::Deprecation.api_deprecation_warning("The parameter environment_id will be removed in Katello 3.4. Please update to use the environment_ids parameter.")
258
+ KTEnvironment.where(:id => params[:environment_id])
259
+ else
260
+ KTEnvironment.where(:id => params[:environment_ids])
261
+ end
262
+ end
263
+
264
+ def validate_promotable
265
+ fail HttpErrors::BadRequest, _("Could not find environments for promotion") if @environments.blank?
266
+ return deny_access unless @environments.all?(&:promotable_or_removable?) && @version.content_view.promotable_or_removable?
254
267
  true
255
268
  end
256
269
 
@@ -32,9 +32,8 @@ module Katello
32
32
  param_group :search, Api::V2::ApiController
33
33
  def index
34
34
  content_view_includes = [:activation_keys, :content_view_puppet_modules, :content_view_versions,
35
- :environments, :organization, :repositories, components: [:content_view, :environments]]
36
-
37
- respond(:collection => scoped_search(index_relation.uniq, :name, :desc, :includes => content_view_includes))
35
+ :environments, :organization, :repositories]
36
+ respond(:collection => scoped_search(index_relation.uniq, :name, :asc, :includes => content_view_includes))
38
37
  end
39
38
 
40
39
  def index_relation
@@ -191,7 +190,7 @@ module Katello
191
190
  end
192
191
 
193
192
  def view_params
194
- attrs = [:name, :description, {:repository_ids => []}, {:component_ids => []}]
193
+ attrs = [:name, :description, :force_puppet_environment, {:repository_ids => []}, {:component_ids => []}]
195
194
  attrs.push(:label, :composite) if action_name == "create"
196
195
  attrs.push(:component_ids, :repository_ids) # For deep_munge; Remove for Rails 5
197
196
  params.require(:content_view).permit(*attrs)
@@ -48,7 +48,7 @@ module Katello
48
48
  param :library, [true, false], :desc => N_("set true if you want to see only library environments")
49
49
  param :name, String, :desc => N_("filter only environments containing this name")
50
50
  def index
51
- respond(:collection => scoped_search(index_relation.uniq, :name, :desc, :resource_class => KTEnvironment))
51
+ respond(:collection => scoped_search(index_relation.uniq, :name, :asc, :resource_class => KTEnvironment))
52
52
  end
53
53
 
54
54
  def index_relation