katello 3.5.2 → 3.6.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 (490) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/sync_management/sync_management.js +5 -2
  3. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +2 -0
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +35 -16
  5. data/app/controllers/katello/api/v2/activation_keys_controller.rb +2 -2
  6. data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -2
  7. data/app/controllers/katello/api/v2/content_view_components_controller.rb +1 -0
  8. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +1 -1
  9. data/app/controllers/katello/api/v2/content_view_histories_controller.rb +1 -1
  10. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +1 -1
  11. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/content_views_controller.rb +3 -3
  13. data/app/controllers/katello/api/v2/debs_controller.rb +19 -0
  14. data/app/controllers/katello/api/v2/docker_manifest_lists_controller.rb +20 -0
  15. data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
  16. data/app/controllers/katello/api/v2/errata_controller.rb +24 -0
  17. data/app/controllers/katello/api/v2/file_units_controller.rb +4 -1
  18. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +10 -4
  19. data/app/controllers/katello/api/v2/host_autocomplete_controller.rb +0 -1
  20. data/app/controllers/katello/api/v2/host_collections_controller.rb +1 -1
  21. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +1 -1
  22. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +13 -5
  23. data/app/controllers/katello/api/v2/organizations_controller.rb +2 -1
  24. data/app/controllers/katello/api/v2/package_groups_controller.rb +3 -2
  25. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +1 -1
  26. data/app/controllers/katello/api/v2/products_controller.rb +3 -3
  27. data/app/controllers/katello/api/v2/repositories_controller.rb +28 -12
  28. data/app/controllers/katello/api/v2/repository_sets_controller.rb +21 -13
  29. data/app/controllers/katello/api/v2/root_controller.rb +0 -1
  30. data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -19
  31. data/app/controllers/katello/api/v2/sync_plans_controller.rb +1 -1
  32. data/app/controllers/katello/application_controller.rb +0 -18
  33. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +12 -13
  34. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +17 -13
  35. data/app/controllers/katello/concerns/containers/steps_controller_extensions.rb +39 -37
  36. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +14 -14
  37. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +34 -33
  38. data/app/controllers/katello/concerns/smart_proxies_controller_extensions.rb +18 -17
  39. data/app/controllers/katello/products_controller.rb +1 -1
  40. data/app/controllers/katello/providers_controller.rb +11 -0
  41. data/app/controllers/katello/react_controller.rb +9 -0
  42. data/app/controllers/katello/sync_management_controller.rb +1 -1
  43. data/app/helpers/katello/concerns/hosts_and_hostgroups_helper_extensions.rb +10 -9
  44. data/app/helpers/katello/concerns/settings_helper_extensions.rb +42 -33
  45. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +1 -1
  46. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +1 -3
  47. data/app/helpers/katello/providers_helper.rb +2 -5
  48. data/app/lib/actions/candlepin/listen_on_candlepin_events.rb +5 -15
  49. data/app/lib/actions/katello/capsule_content/sync.rb +8 -0
  50. data/app/lib/actions/katello/content_view/incremental_updates.rb +1 -1
  51. data/app/lib/actions/katello/content_view_puppet_environment/clone.rb +2 -2
  52. data/app/lib/actions/katello/content_view_version/republish_repositories.rb +2 -5
  53. data/app/lib/actions/katello/event_queue/monitor.rb +10 -11
  54. data/app/lib/actions/katello/event_queue/suspended_action.rb +1 -1
  55. data/app/lib/actions/katello/host/register.rb +1 -1
  56. data/app/lib/actions/katello/host/update.rb +1 -3
  57. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -5
  58. data/app/lib/actions/katello/product/content_create.rb +11 -1
  59. data/app/lib/actions/katello/product/content_destroy.rb +8 -0
  60. data/app/lib/actions/katello/product/destroy.rb +2 -2
  61. data/app/lib/actions/katello/product/update.rb +0 -3
  62. data/app/lib/actions/katello/repository/bulk_metadata_generate.rb +15 -0
  63. data/app/lib/actions/katello/repository/check_matching_content.rb +10 -3
  64. data/app/lib/actions/katello/repository/clear.rb +4 -1
  65. data/app/lib/actions/katello/repository/clone_deb_content.rb +70 -0
  66. data/app/lib/actions/katello/repository/clone_to_environment.rb +4 -1
  67. data/app/lib/actions/katello/repository/clone_to_version.rb +19 -10
  68. data/app/lib/actions/katello/repository/clone_yum_content.rb +2 -0
  69. data/app/lib/actions/katello/repository/clone_yum_metadata.rb +1 -2
  70. data/app/lib/actions/katello/repository/create.rb +6 -2
  71. data/app/lib/actions/katello/repository/destroy.rb +1 -1
  72. data/app/lib/actions/katello/repository/export.rb +15 -0
  73. data/app/lib/actions/katello/repository/fetch_pxe_files.rb +49 -0
  74. data/app/lib/actions/katello/repository/filtered_index_content.rb +2 -0
  75. data/app/lib/actions/katello/repository/metadata_generate.rb +5 -1
  76. data/app/lib/actions/katello/repository/remove_content.rb +2 -0
  77. data/app/lib/actions/katello/repository/sync.rb +5 -6
  78. data/app/lib/actions/katello/repository/update.rb +14 -4
  79. data/app/lib/actions/katello/repository/upload_package_group.rb +0 -1
  80. data/app/lib/actions/katello/repository_set/disable_repository.rb +7 -7
  81. data/app/lib/actions/katello/repository_set/enable_repository.rb +17 -7
  82. data/app/lib/actions/katello/repository_set/scan_cdn.rb +8 -10
  83. data/app/lib/actions/pulp/consumer/abstract_content_action.rb +1 -1
  84. data/app/lib/actions/pulp/repository/copy_deb.rb +15 -0
  85. data/app/lib/actions/pulp/repository/copy_deb_component.rb +11 -0
  86. data/app/lib/actions/pulp/repository/copy_deb_release.rb +11 -0
  87. data/app/lib/actions/pulp/repository/copy_srpm.rb +16 -0
  88. data/app/lib/actions/pulp/repository/create.rb +38 -3
  89. data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +101 -0
  90. data/app/lib/actions/pulp/repository/remove_deb.rb +15 -0
  91. data/app/lib/actions/pulp/repository/remove_docker_blob.rb +11 -0
  92. data/app/lib/actions/pulp/repository/remove_docker_manifest_list.rb +11 -0
  93. data/app/lib/actions/pulp/repository/remove_docker_tag.rb +11 -0
  94. data/app/lib/actions/pulp/repository/sync.rb +2 -0
  95. data/app/lib/katello/api/v2/error_handling.rb +1 -1
  96. data/app/lib/katello/capsule_content.rb +1 -1
  97. data/app/lib/katello/concerns/renderer_extensions.rb +12 -10
  98. data/app/lib/katello/errors.rb +0 -4
  99. data/app/lib/katello/resources/candlepin.rb +2 -3
  100. data/app/lib/katello/util/cdn_var_substitutor.rb +2 -2
  101. data/app/lib/katello/util/docker_manifest_clause_generator.rb +1 -1
  102. data/app/lib/katello/util/package_clause_generator.rb +1 -1
  103. data/app/lib/katello/util/support.rb +1 -1
  104. data/app/models/katello/activation_key.rb +1 -1
  105. data/app/models/katello/authorization/content_view_history.rb +1 -0
  106. data/app/models/katello/authorization/content_view_version.rb +1 -1
  107. data/app/models/katello/authorization/pool.rb +2 -0
  108. data/app/models/katello/authorization/repository.rb +2 -0
  109. data/app/models/katello/candlepin/docker_repository_mapper.rb +77 -0
  110. data/app/models/katello/candlepin/repository_mapper.rb +143 -0
  111. data/app/models/katello/concerns/container_extensions.rb +14 -12
  112. data/app/models/katello/concerns/content_facet_host_extensions.rb +2 -2
  113. data/app/models/katello/concerns/docker_container_wizard_state_extensions.rb +6 -4
  114. data/app/models/katello/concerns/docker_container_wizard_state_image_extensions.rb +8 -6
  115. data/app/models/katello/concerns/host_managed_extensions.rb +2 -13
  116. data/app/models/katello/concerns/location_extensions.rb +5 -1
  117. data/app/models/katello/concerns/organization_extensions.rb +22 -1
  118. data/app/models/katello/concerns/pulp_database_unit.rb +26 -5
  119. data/app/models/katello/concerns/redhat_extensions.rb +22 -21
  120. data/app/models/katello/concerns/smart_proxy_extensions.rb +11 -9
  121. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +8 -7
  122. data/app/models/katello/content.rb +26 -0
  123. data/app/models/katello/content_view.rb +18 -5
  124. data/app/models/katello/content_view_component.rb +1 -1
  125. data/app/models/katello/content_view_docker_filter.rb +15 -6
  126. data/app/models/katello/content_view_filter.rb +8 -2
  127. data/app/models/katello/content_view_puppet_environment.rb +12 -0
  128. data/app/models/katello/content_view_repository.rb +2 -1
  129. data/app/models/katello/content_view_version.rb +57 -15
  130. data/app/models/katello/deb.rb +50 -0
  131. data/app/models/katello/docker_manifest.rb +14 -8
  132. data/app/models/katello/docker_manifest_list.rb +39 -0
  133. data/app/models/katello/docker_manifest_list_manifest.rb +6 -0
  134. data/app/models/katello/docker_meta_tag.rb +3 -3
  135. data/app/models/katello/docker_tag.rb +30 -10
  136. data/app/models/katello/errata_status.rb +1 -1
  137. data/app/models/katello/erratum.rb +3 -4
  138. data/app/models/katello/file_unit.rb +2 -2
  139. data/app/models/katello/glue/candlepin/activation_key.rb +1 -1
  140. data/app/models/katello/glue/candlepin/content.rb +9 -34
  141. data/app/models/katello/glue/candlepin/owner.rb +0 -32
  142. data/app/models/katello/glue/candlepin/pool.rb +2 -3
  143. data/app/models/katello/glue/candlepin/product.rb +34 -52
  144. data/app/models/katello/glue/candlepin/repository.rb +31 -0
  145. data/app/models/katello/glue/provider.rb +16 -19
  146. data/app/models/katello/glue/pulp/repo.rb +89 -16
  147. data/app/models/katello/host/content_facet.rb +6 -6
  148. data/app/models/katello/host/info_provider.rb +2 -2
  149. data/app/models/katello/host/subscription_facet.rb +4 -4
  150. data/app/models/katello/kt_environment.rb +6 -2
  151. data/app/models/katello/package_group.rb +1 -1
  152. data/app/models/katello/pool.rb +13 -12
  153. data/app/models/katello/product.rb +12 -6
  154. data/app/models/katello/product_content.rb +36 -0
  155. data/app/models/katello/provider.rb +1 -1
  156. data/app/models/katello/puppet_module.rb +5 -5
  157. data/app/models/katello/repository.rb +103 -11
  158. data/app/models/katello/repository_deb.rb +7 -0
  159. data/app/models/katello/repository_docker_manifest_list.rb +7 -0
  160. data/app/models/katello/repository_srpm.rb +7 -0
  161. data/app/models/katello/rhsm_fact_importer.rb +2 -2
  162. data/app/models/katello/rhsm_fact_parser.rb +1 -1
  163. data/app/models/katello/rpm.rb +5 -5
  164. data/app/models/katello/srpm.rb +40 -0
  165. data/app/models/katello/subscription.rb +3 -2
  166. data/app/models/katello/sync_plan.rb +8 -5
  167. data/app/models/setting/content.rb +5 -3
  168. data/app/services/katello/product_content_finder.rb +1 -1
  169. data/app/services/katello/pulp/deb.rb +46 -0
  170. data/app/services/katello/pulp/docker_manifest_list.rb +7 -0
  171. data/app/services/katello/pulp/server.rb +4 -12
  172. data/app/services/katello/pulp/srpm.rb +17 -0
  173. data/app/views/foreman/unattended/finish-katello.erb +4 -4
  174. data/app/views/foreman/unattended/kickstart-katello-atomic.erb +3 -3
  175. data/app/views/foreman/unattended/kickstart-katello.erb +5 -9
  176. data/app/views/foreman/unattended/snippets/_subscription_manager_registration.erb +3 -3
  177. data/app/views/foreman/unattended/userdata-katello.erb +8 -8
  178. data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +1 -2
  179. data/app/views/katello/api/v2/content_facet/base.json.rabl +6 -1
  180. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +3 -0
  181. data/app/views/katello/api/v2/content_views/show.json.rabl +12 -0
  182. data/app/views/katello/api/v2/debs/base.json.rabl +10 -0
  183. data/app/views/katello/api/v2/debs/index.json.rabl +7 -0
  184. data/app/views/katello/api/v2/debs/show.json.rabl +3 -0
  185. data/app/views/katello/api/v2/docker_manifest_lists/index.json.rabl +7 -0
  186. data/app/views/katello/api/v2/docker_manifest_lists/show.json.rabl +12 -0
  187. data/app/views/katello/api/v2/docker_manifests/compare.json.rabl +10 -0
  188. data/app/views/katello/api/v2/docker_manifests/show.json.rabl +5 -1
  189. data/app/views/katello/api/v2/docker_tags/_base.json.rabl +4 -4
  190. data/app/views/katello/api/v2/docker_tags/compare.json.rabl +10 -0
  191. data/app/views/katello/api/v2/docker_tags/show.json.rabl +1 -1
  192. data/app/views/katello/api/v2/errata/_counts.json.rabl +1 -0
  193. data/app/views/katello/api/v2/errata/available_errata.rabl +7 -0
  194. data/app/views/katello/api/v2/file_units/compare.json.rabl +10 -0
  195. data/app/views/katello/api/v2/host_subscriptions/product_content.json.rabl +1 -2
  196. data/app/views/katello/api/v2/hostgroups_extensions/show.json.rabl +2 -1
  197. data/app/views/katello/api/v2/hosts_bulk_actions/applicable_errata.json.rabl +7 -0
  198. data/app/views/katello/api/v2/layouts/resource.json.erb +1 -1
  199. data/app/views/katello/api/v2/ostree_branches/compare.json.rabl +10 -0
  200. data/app/views/katello/api/v2/package_groups/compare.json.rabl +10 -0
  201. data/app/views/katello/api/v2/packages/compare.json.rabl +10 -0
  202. data/app/views/katello/api/v2/products/_product_content.json.rabl +9 -0
  203. data/app/views/katello/api/v2/products/base.json.rabl +3 -1
  204. data/app/views/katello/api/v2/products/show.json.rabl +6 -2
  205. data/app/views/katello/api/v2/puppet_modules/compare.json.rabl +10 -0
  206. data/app/views/katello/api/v2/repositories/base.json.rabl +5 -1
  207. data/app/views/katello/api/v2/repositories/show.json.rabl +2 -0
  208. data/app/views/katello/api/v2/repository_sets/show.json.rabl +15 -3
  209. data/app/views/katello/layouts/react.html.erb +15 -0
  210. data/app/views/katello/providers/redhat/_repo_sets.html.erb +5 -5
  211. data/app/views/katello/sync_management/index.html.erb +4 -0
  212. data/app/views/smart_proxies/pulp_status.html.erb +6 -6
  213. data/config/katello.yaml.example +0 -4
  214. data/config/routes.rb +3 -0
  215. data/config/routes/api/v2.rb +30 -3
  216. data/config/routes/overrides.rb +1 -0
  217. data/db/migrate/20131014135042_katello_tables.rb +1 -1
  218. data/db/migrate/20131014225132_add_users_fields.rb +1 -1
  219. data/db/migrate/20131016124255_add_foreign_keys_engine.rb +1 -1
  220. data/db/migrate/20131120225132_add_organization_fields.rb +1 -1
  221. data/db/migrate/20131216212502_add_quantity_to_katello_key_pools.rb +1 -1
  222. data/db/migrate/20131216212621_add_cp_id_to_katello_activation_keys.rb +1 -1
  223. data/db/migrate/20131218174203_drop_katello_key_pools_table.rb +1 -1
  224. data/db/migrate/20140110000001_update_environments_add_katello_id.rb +1 -1
  225. data/db/migrate/20140117160939_refactor_content_views.rb +1 -1
  226. data/db/migrate/20140206200439_create_content_view_puppet_modules.rb +1 -1
  227. data/db/migrate/20140212131812_create_content_view_package_filter_rules.rb +1 -1
  228. data/db/migrate/20140212143454_create_content_view_package_group_filter_rules.rb +1 -1
  229. data/db/migrate/20140212143642_create_content_view_erratum_filter_rules.rb +1 -1
  230. data/db/migrate/20140217145303_remove_changeset.rb +1 -1
  231. data/db/migrate/20140217160132_create_content_view_history.rb +1 -1
  232. data/db/migrate/20140222022712_remove_provider_discovery.rb +1 -1
  233. data/db/migrate/20140305101813_allow_null_for_repository_content_id.rb +1 -1
  234. data/db/migrate/20140306132108_create_content_view_puppet_environments.rb +1 -1
  235. data/db/migrate/20140310102051_repository_add_checksum_type.rb +1 -1
  236. data/db/migrate/20140318174203_drop_cdn_import_success_column.rb +1 -1
  237. data/db/migrate/20140325185413_create_content_view_foreign_keys.rb +1 -1
  238. data/db/migrate/20140404122011_drop_repositories_enabled_column.rb +1 -1
  239. data/db/migrate/20140411134235_update_content_view_description_type.rb +1 -1
  240. data/db/migrate/20140414214152_allow_null_content_view_to_activation_key.rb +1 -1
  241. data/db/migrate/20140418124032_add_next_version_to_katello_content_views.rb +1 -1
  242. data/db/migrate/20140422000001_update_products_add_organization.rb +1 -1
  243. data/db/migrate/20140423191446_add_anonymous_providers_to_orgs.rb +1 -1
  244. data/db/migrate/20140425155126_add_host_id_to_system.rb +1 -1
  245. data/db/migrate/20140429193743_add_release_version_to_activation_keys.rb +1 -1
  246. data/db/migrate/20140502164009_rename_system_groups_to_host_collections.rb +1 -1
  247. data/db/migrate/20140502174412_update_host_collections_foreign_keys.rb +1 -1
  248. data/db/migrate/20140514165842_create_capsule_lifecycle_environments.rb +1 -1
  249. data/db/migrate/20140531160506_package_filter_add_original_packages.rb +1 -1
  250. data/db/migrate/20140610083129_add_pulp_proxy_to_host.rb +1 -1
  251. data/db/migrate/20140610154745_content_view_puppet_environment_id.rb +1 -1
  252. data/db/migrate/20140610170142_add_uuid_to_content_view_package_group_filter_rule.rb +1 -1
  253. data/db/migrate/20140617100300_add_description_to_content_view_filter_rules.rb +1 -1
  254. data/db/migrate/20140623103442_drop_taxonomies_owner_auto_attach_all_systems_task_id_column.rb +1 -1
  255. data/db/migrate/20140624183938_add_foreign_keys_for_organizations.rb +1 -1
  256. data/db/migrate/20140624184401_remove_label_from_activation_key.rb +1 -1
  257. data/db/migrate/20140626055258_add_missing_foreign_keys.rb +1 -1
  258. data/db/migrate/20140626204657_add_unlimited_to_activation_keys.rb +1 -1
  259. data/db/migrate/20140626204902_add_unlimited_to_host_collection.rb +1 -1
  260. data/db/migrate/20140707203534_location_add_katello_default.rb +1 -1
  261. data/db/migrate/20140709150428_remove_deletion_task_id_from_taxonomies.rb +1 -1
  262. data/db/migrate/20140716211853_repo_rename_feed_to_url.rb +1 -1
  263. data/db/migrate/20140807175457_remove_hidden_column_from_user.rb +1 -1
  264. data/db/migrate/20140811141742_remove_delayed_jobs.rb +1 -1
  265. data/db/migrate/20140821084214_add_sync_plan_enabled_to_sync_plan.rb +1 -1
  266. data/db/migrate/20140928210618_add_description_to_content_view_versions.rb +1 -1
  267. data/db/migrate/20140930170628_add_errata.rb +1 -1
  268. data/db/migrate/20141001170628_add_system_repository.rb +1 -1
  269. data/db/migrate/20141003210742_add_docker_container_registry_url_to_providers.rb +1 -1
  270. data/db/migrate/20141015173220_add_docker_image_fields.rb +1 -1
  271. data/db/migrate/20141031150814_add_tag_repository_id_index.rb +1 -1
  272. data/db/migrate/20141112180709_add_auto_attach_to_activation_keys.rb +1 -1
  273. data/db/migrate/20141124182205_content_view_version_add_minor.rb +1 -1
  274. data/db/migrate/20141203123206_add_timestamps_to_repository_join_tables.rb +1 -1
  275. data/db/migrate/20141204203609_add_default_value_to_auto_attach.rb +1 -1
  276. data/db/migrate/20141209103005_disown_foreman_templates.rb +1 -1
  277. data/db/migrate/20141210173220_create_docker_tables.rb +1 -1
  278. data/db/migrate/20141215213720_track_version_components.rb +1 -1
  279. data/db/migrate/20141222151001_add_host_content_view_environment.rb +1 -1
  280. data/db/migrate/20150109012657_add_capsule_id_to_container.rb +1 -1
  281. data/db/migrate/20150114225023_add_upstream_name_to_repository.rb +1 -1
  282. data/db/migrate/20150119153452_update_promote_errata_email_description.rb +1 -1
  283. data/db/migrate/20150224083608_remove_docker_registry_url.rb +1 -1
  284. data/db/migrate/20150227213850_change_descriptions_to_text_fields.rb +1 -1
  285. data/db/migrate/20150423134004_add_content_host_id_to_smart_proxy.rb +1 -1
  286. data/db/migrate/20150505180030_change_errata_timestamps_to_dates.rb +1 -1
  287. data/db/migrate/20150507131145_update_composite_default_for_content_view.rb +1 -1
  288. data/db/migrate/20150513034751_add_ostree_branches.rb +1 -1
  289. data/db/migrate/20150602153753_remove_help_tips.rb +1 -1
  290. data/db/migrate/20150602153754_remove_search_histories.rb +1 -1
  291. data/db/migrate/20150602153755_remove_search_favorites.rb +1 -1
  292. data/db/migrate/20150602153756_remove_user_notices.rb +1 -1
  293. data/db/migrate/20150602153757_remove_notices.rb +1 -1
  294. data/db/migrate/20150603045418_remove_user_fields.rb +1 -1
  295. data/db/migrate/20150606021722_create_puppet_modules.rb +1 -1
  296. data/db/migrate/20150611140455_remove_default_and_custom_info.rb +1 -1
  297. data/db/migrate/20150613134559_add_rpm.rb +1 -1
  298. data/db/migrate/20150623135424_create_package_groups.rb +1 -1
  299. data/db/migrate/20150715142649_assign_content_host_to_smart_proxies.rb +1 -1
  300. data/db/migrate/20150717142559_add_distributions_to_repository.rb +1 -1
  301. data/db/migrate/20150813185339_create_subscriptions.rb +1 -1
  302. data/db/migrate/20150826165942_add_subscription_facet.rb +1 -1
  303. data/db/migrate/20150826170004_add_content_facet.rb +1 -1
  304. data/db/migrate/20150901213759_remove_distributors.rb +1 -1
  305. data/db/migrate/20150902164543_remove_apply_info_task_id_from_taxonomies.rb +1 -1
  306. data/db/migrate/20150908222711_drop_marketing_engineering_products.rb +1 -1
  307. data/db/migrate/20150928221648_update_location_katello_default.rb +1 -1
  308. data/db/migrate/20150930183738_migrate_content_hosts.rb +1 -1
  309. data/db/migrate/20151014144004_host_collection_to_hosts.rb +1 -1
  310. data/db/migrate/20151015152947_add_virt_only_to_katello_pools.rb +1 -1
  311. data/db/migrate/20151203230940_add_date_type_to_content_view_erratum_filter_rules.rb +1 -1
  312. data/db/migrate/20151219152536_rename_index_repository_errata.rb +1 -1
  313. data/db/migrate/20151219203225_rename_index_repository_puppet_module.rb +1 -1
  314. data/db/migrate/20160114200145_add_mirror_on_sync_to_repositories.rb +1 -1
  315. data/db/migrate/20160129192548_add_docker_v2_schema.rb +1 -1
  316. data/db/migrate/20160131182301_add_download_policy_to_katello_repositories.rb +1 -1
  317. data/db/migrate/20160203195736_remove_docker_image_schema.rb +1 -1
  318. data/db/migrate/20160211134035_remove_system_errata.rb +1 -1
  319. data/db/migrate/20160222143432_move_system_description_to_host.rb +1 -1
  320. data/db/migrate/20160224155909_add_registered_at_to_subscription_facet.rb +1 -1
  321. data/db/migrate/20160301070319_add_version_ostree_branches.rb +1 -1
  322. data/db/migrate/20160317171813_change_activation_key_column_names.rb +1 -1
  323. data/db/migrate/20160323065901_increase_cdn_length.rb +1 -1
  324. data/db/migrate/20160404132250_remove_katello_from_notification_name.rb +1 -1
  325. data/db/migrate/20160413230128_add_kickstart_repository_to_hosts_and_hostgroups.rb +1 -1
  326. data/db/migrate/20160426145517_move_host_description_to_host_comment.rb +1 -1
  327. data/db/migrate/20160505181337_rename_katello_settings.rb +1 -1
  328. data/db/migrate/20160520175340_add_host_applicable_package.rb +1 -1
  329. data/db/migrate/20160530184400_add_repo_id_indexes.rb +1 -1
  330. data/db/migrate/20160605160933_remove_jobs.rb +1 -1
  331. data/db/migrate/20160605162929_remove_system_smart_proxy.rb +1 -1
  332. data/db/migrate/20160613150922_add_event_queue.rb +1 -1
  333. data/db/migrate/20160617124149_remove_duplicate_view_filters.rb +1 -1
  334. data/db/migrate/20160619223332_fix_viewer_role.rb +1 -1
  335. data/db/migrate/20160627125310_delete_system.rb +1 -1
  336. data/db/migrate/20160701180402_add_sortable_version_to_puppet_modules.rb +1 -1
  337. data/db/migrate/20160722193256_add_verify_ssl_on_sync_to_repository.rb +1 -1
  338. data/db/migrate/20160727144242_add_registered_through_to_katello_subscription_facets.rb +1 -1
  339. data/db/migrate/20160728005028_add_latest_version_to_content_view_component.rb +1 -1
  340. data/db/migrate/20160808002834_add_files.rb +1 -1
  341. data/db/migrate/20160906181923_add_puppet_path_to_smart_proxy.rb +1 -1
  342. data/db/migrate/20160907231049_add_username_password_to_repository.rb +1 -1
  343. data/db/migrate/20160908234510_add_rpm_nvra.rb +1 -1
  344. data/db/migrate/20160923143611_add_action_to_content_view_histories.rb +1 -1
  345. data/db/migrate/20160924213020_change_katello_widget_names.rb +1 -1
  346. data/db/migrate/20160930121245_content_view_force_puppet_env.rb +1 -1
  347. data/db/migrate/20160930150810_add_smart_proxy_download_policy.rb +1 -1
  348. data/db/migrate/20161003130853_add_architecture_to_katello_content_view_package_filter_rule.rb +1 -1
  349. data/db/migrate/20161003204325_add_user_to_katello_subscription_facets.rb +1 -1
  350. data/db/migrate/20161014133811_move_content_view_version_description_to_histories.rb +2 -4
  351. data/db/migrate/20161021072346_fix_subscription_permissions.rb +1 -1
  352. data/db/migrate/20161026191118_fix_invalid_interfaces.rb +1 -1
  353. data/db/migrate/20161028153131_sub_facet_user_index_not_uniq.rb +1 -1
  354. data/db/migrate/20161031204903_add_tracer_support.rb +1 -1
  355. data/db/migrate/20161102194100_create_content_view_docker_filter_rules.rb +1 -1
  356. data/db/migrate/20161209162947_add_virt_who_to_katello_pools.rb +1 -1
  357. data/db/migrate/20161214151548_move_content_source_id_to_content_facets.rb +1 -1
  358. data/db/migrate/20170114051758_add_depth_to_repositories.rb +1 -1
  359. data/db/migrate/20170122204325_add_hypervisor_to_subscription_facets.rb +1 -1
  360. data/db/migrate/20170125152421_move_default_location_to_settings.rb +1 -1
  361. data/db/migrate/20170208215148_add_docker_repo_name.rb +1 -1
  362. data/db/migrate/20170220679403_remove_system_permissions.rb +1 -1
  363. data/db/migrate/20170222131211_change_pool_columns_to_dates.rb +1 -1
  364. data/db/migrate/20170321012632_fill_in_content_view_components.rb +1 -1
  365. data/db/migrate/20170523182831_create_docker_meta_tag.rb +1 -1
  366. data/db/migrate/20170714144125_add_deb.rb +34 -0
  367. data/db/migrate/20170718142148_create_katello_subscription_facet_pools.rb +1 -1
  368. data/db/migrate/20170720142145_add_deb_release_parameters_to_repositories.rb +7 -0
  369. data/db/migrate/20170821170915_add_index_to_installed_packages.rb +1 -1
  370. data/db/migrate/20170821170916_add_nvra_index_to_installed_packages.rb +1 -1
  371. data/db/migrate/20170822104447_add_katello_content_to_image.rb +1 -1
  372. data/db/migrate/20170913183848_add_errata_counts.rb +1 -1
  373. data/db/migrate/20171010170443_add_index_to_katello_content_facet_errata.rb +1 -1
  374. data/db/migrate/20171010172724_add_docker_manifest_list.rb +67 -0
  375. data/db/migrate/20171011175510_add_srpm.rb +38 -0
  376. data/db/migrate/20171014051810_remove_docker_manifest_name.rb +9 -0
  377. data/db/migrate/20171025163149_remove_use_pulp_oauth_setting.rb +5 -0
  378. data/db/migrate/20171112174357_create_katello_content.rb +13 -0
  379. data/db/migrate/20171112174358_create_katello_product_content.rb +16 -0
  380. data/db/migrate/20171114150937_cleanup_installed_packages.rb +1 -1
  381. data/db/migrate/20171114183353_add_hypervisor_id_to_katello_pools.rb +1 -1
  382. data/db/migrate/20171120144843_add_repository_ignore_proxy.rb +5 -0
  383. data/db/migrate/20171211124439_add_uuid_index_to_katello_subscription_facets.rb +1 -1
  384. data/db/migrate/20180103230812_set_errata_updated_date.rb +7 -0
  385. data/db/seeds.d/101-locations.rb +6 -4
  386. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +1 -1
  387. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +1 -0
  388. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +6 -0
  389. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-packages-modal.controller.js +1 -4
  390. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +2 -2
  391. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +0 -2
  392. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +8 -10
  393. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +5 -3
  394. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +13 -5
  395. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +1 -1
  396. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +44 -0
  397. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-deb-repositories.controller.js +48 -0
  398. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-deb-repositories-list.controller.js +46 -0
  399. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +11 -7
  400. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +3 -0
  401. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +4 -14
  402. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +4 -0
  403. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-deb-repositories.html +87 -0
  404. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +7 -0
  405. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html +6 -0
  406. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +12 -1
  407. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-repositories.html +5 -0
  408. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +10 -1
  409. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +13 -2
  410. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +3 -1
  411. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-apt.html +25 -0
  412. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-deb.html +19 -0
  413. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-errata.html +2 -2
  414. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html +3 -0
  415. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +16 -2
  416. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/deb.factory.js +28 -0
  417. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.controller.js +34 -0
  418. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.module.js +20 -0
  419. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.routes.js +71 -0
  420. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-content-views.controller.js +44 -0
  421. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-repositories.controller.js +36 -0
  422. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb.controller.js +34 -0
  423. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-content-views.html +41 -0
  424. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html +21 -0
  425. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-repositories.html +52 -0
  426. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb.html +37 -0
  427. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/views/debs.html +43 -0
  428. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifest-lists/docker-manifest-list.factory.js +26 -0
  429. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifest-lists/docker-manifest-lists.module.js +19 -0
  430. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-details.controller.js +17 -3
  431. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-environments.controller.js +2 -11
  432. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-details.html +2 -2
  433. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-info.html +7 -8
  434. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.routes.js +1 -1
  435. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html +1 -1
  436. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-errata.html +2 -2
  437. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-content-hosts.controller.js +11 -25
  438. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html +3 -3
  439. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +1 -1
  440. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/incremental-update.service.js +2 -3
  441. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +6 -17
  442. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +1 -1
  443. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.controller.js +2 -2
  444. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/organization-selector.controller.js +2 -1
  445. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.routes.js +1 -1
  446. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.routes.js +1 -1
  447. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +17 -6
  448. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +69 -8
  449. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-debs.html +68 -0
  450. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifest-lists.html +44 -0
  451. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +13 -7
  452. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +2 -2
  453. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +2 -2
  454. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +42 -4
  455. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.module.js +3 -1
  456. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +18 -0
  457. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +21 -2
  458. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +2 -0
  459. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +8 -0
  460. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +3 -3
  461. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/subscription-details.controller.js +1 -1
  462. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +1 -1
  463. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/new-sync-plan.controller.js +1 -0
  464. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +1 -0
  465. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/docker.scss +16 -0
  466. data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -0
  467. data/lib/katello/engine.rb +4 -6
  468. data/lib/katello/permission_creator.rb +14 -12
  469. data/lib/katello/permissions/host_permissions.rb +1 -0
  470. data/lib/katello/plugin.rb +83 -54
  471. data/lib/katello/prevent_json_parsing.rb +15 -0
  472. data/lib/katello/repository_types/deb.rb +1 -0
  473. data/lib/katello/tasks/clean_old_file_repos.rake +33 -0
  474. data/lib/katello/tasks/clean_published_repo_directories.rake +4 -4
  475. data/lib/katello/tasks/reimport.rake +8 -1
  476. data/lib/katello/tasks/repository.rake +3 -3
  477. data/lib/katello/tasks/rubocop.rake +1 -1
  478. data/lib/katello/tasks/test.rake +1 -0
  479. data/lib/katello/tasks/upgrades/3.6/import_product_content.rake +12 -0
  480. data/lib/katello/tasks/upgrades/3.6/republish_file_repos.rake +16 -0
  481. data/lib/katello/tasks/virt_who_report.rake +2 -2
  482. data/lib/katello/version.rb +1 -1
  483. data/locale/README +1 -0
  484. metadata +121 -30
  485. data/app/lib/actions/candlepin/owner/upstream_regenerate_certificates.rb +0 -17
  486. data/app/lib/actions/candlepin/product/update.rb +0 -32
  487. data/app/lib/actions/katello/event_queue/run_once_coordinator_lock.rb +0 -12
  488. data/app/models/katello/candlepin/content.rb +0 -252
  489. data/app/models/katello/candlepin/product_content.rb +0 -48
  490. data/lib/katello/params_parser_wrapper.rb +0 -16
@@ -1,6 +1,5 @@
1
1
  module Katello
2
2
  class Api::V2::HostAutocompleteController < ::Api::V2::BaseController
3
- include ::Api::TaxonomyScope
4
3
  include ::Foreman::Controller::AutoCompleteSearch
5
4
 
6
5
  before_action :find_optional_nested_object
@@ -34,7 +34,7 @@ module Katello
34
34
  param :available_for, String, :required => false,
35
35
  :desc => N_("Interpret specified object to return only Host Collections that can be associated with specified object. The value 'host' is supported.")
36
36
  def index
37
- respond(:collection => scoped_search(index_relation.uniq!, :name, :asc))
37
+ respond(:collection => scoped_search(index_relation.distinct, :name, :asc))
38
38
  end
39
39
 
40
40
  def index_relation
@@ -80,7 +80,7 @@ module Katello
80
80
  end
81
81
 
82
82
  def params_to_rhsm_params
83
- rhsm_params = params.slice(:facts, :uuid, :name)
83
+ rhsm_params = params.slice(:facts, :uuid, :name).to_unsafe_h
84
84
  rhsm_params[:releaseVer] = params['release_version'] if params['release_version']
85
85
  rhsm_params[:serviceLevel] = params['service_level'] if params['service_level']
86
86
  rhsm_params[:guestIds] = params['hypervisor_guest_uuids'] if params[:hypervisor_guest_uuids]
@@ -6,9 +6,9 @@ module Katello
6
6
  before_action :find_host_collections, :only => [:bulk_add_host_collections, :bulk_remove_host_collections]
7
7
  before_action :find_environment, :only => [:environment_content_view]
8
8
  before_action :find_content_view, :only => [:environment_content_view]
9
- before_action :find_editable_hosts, :except => [:destroy_hosts, :installable_errata]
9
+ before_action :find_editable_hosts, :except => [:destroy_hosts, :applicable_errata, :installable_errata]
10
10
  before_action :find_deletable_hosts, :only => [:destroy_hosts]
11
- before_action :find_readable_hosts, :only => [:installable_errata, :available_incremental_updates]
11
+ before_action :find_readable_hosts, :only => [:applicable_errata, :installable_errata, :available_incremental_updates]
12
12
  before_action :find_errata, :only => [:available_incremental_updates]
13
13
 
14
14
  before_action :validate_content_action, :only => [:install_content, :update_content, :remove_content]
@@ -91,6 +91,14 @@ module Katello
91
91
  :resource => { 'displayMessages' => display_messages }
92
92
  end
93
93
 
94
+ api :POST, "/hosts/bulk/applicable_errata",
95
+ N_("Fetch applicable errata for a host.")
96
+ param_group :bulk_params
97
+ def applicable_errata
98
+ respond_for_index(:collection => scoped_search(Katello::Erratum.applicable_to_hosts(@hosts), 'updated', 'desc',
99
+ :resource_class => Erratum))
100
+ end
101
+
94
102
  api :POST, "/hosts/bulk/installable_errata",
95
103
  N_("Fetch installable errata for a host.")
96
104
  param_group :bulk_params
@@ -137,7 +145,7 @@ module Katello
137
145
  respond_for_async :resource => task
138
146
  end
139
147
 
140
- api :PUT, "/hosts/bulk/subscriptions/remove_subscriptions", N_("Remove subscriptions from one or more hosts")
148
+ api :PUT, "/hosts/bulk/remove_subscriptions", N_("Remove subscriptions from one or more hosts")
141
149
  param_group :bulk_params
142
150
  param :subscriptions, Array, :desc => N_("Array of subscriptions to remove") do
143
151
  param :id, String, :desc => N_("Subscription Pool id"), :required => true
@@ -154,7 +162,7 @@ module Katello
154
162
  respond_for_async :resource => task
155
163
  end
156
164
 
157
- api :PUT, "/hosts/bulk/subscriptions/add_subscriptions", N_("Add subscriptions to one or more hosts")
165
+ api :PUT, "/hosts/bulk/add_subscriptions", N_("Add subscriptions to one or more hosts")
158
166
  param_group :bulk_params
159
167
  param :subscriptions, Array, :desc => N_("Array of subscriptions to add"), :required => true do
160
168
  param :id, String, :desc => N_("Subscription Pool id"), :required => true
@@ -169,7 +177,7 @@ module Katello
169
177
  respond_for_async :resource => task
170
178
  end
171
179
 
172
- api :PUT, "/hosts/bulk/subscriptions/auto_attach", N_("Trigger an auto-attach of subscriptions on one or more hosts")
180
+ api :PUT, "/hosts/bulk/auto_attach", N_("Trigger an auto-attach of subscriptions on one or more hosts")
173
181
  param_group :bulk_params
174
182
  def auto_attach
175
183
  task = async_task(::Actions::BulkAction, ::Actions::Katello::Host::AutoAttachSubscriptions, @hosts)
@@ -63,7 +63,8 @@ module Katello
63
63
  param_group :resource, ::Api::V2::TaxonomiesController
64
64
  def update
65
65
  if params.key?(:redhat_repository_url)
66
- sync_task(::Actions::Katello::Provider::Update, @organization.redhat_provider, params)
66
+ org_params = params.permit(:redhat_repository_url).to_h
67
+ sync_task(::Actions::Katello::Provider::Update, @organization.redhat_provider, org_params)
67
68
  end
68
69
  super
69
70
  end
@@ -38,7 +38,8 @@ module Katello
38
38
  params[:user_visible] = ::Foreman::Cast.to_bool(params[:user_visible])
39
39
  params[:user_visible] ||= true
40
40
 
41
- sync_task(::Actions::Katello::Repository::UploadPackageGroup, @repo, params)
41
+ create_params = params.slice(:name, :description, :user_visible, :mandatory_package_names, :optional_package_names, :conditional_package_names, :default_package_names).to_unsafe_h
42
+ sync_task(::Actions::Katello::Repository::UploadPackageGroup, @repo, create_params)
42
43
  render :json => {:status => "success"}
43
44
  end
44
45
 
@@ -54,7 +55,7 @@ module Katello
54
55
  render :json => {:status => "success"}
55
56
  end
56
57
 
57
- def available_for_content_view_filter(filter, collection)
58
+ def available_for_content_view_filter(filter, _collection)
58
59
  collection_ids = []
59
60
  current_ids = filter.package_group_rules.map(&:uuid)
60
61
  filter.applicable_repos.each do |repo|
@@ -31,7 +31,7 @@ module Katello
31
31
  validate_contents = ::Foreman::Cast.to_bool(params[:validate_contents])
32
32
 
33
33
  syncable_products = @products.syncable
34
- syncable_repositories = Repository.where(:product_id => syncable_products).has_url
34
+ syncable_repositories = Repository.where(:product_id => syncable_products).has_url.in_default_view
35
35
 
36
36
  syncable_repositories = syncable_repositories.where(:content_type => Repository::YUM_TYPE) if skip_metadata_check || validate_contents
37
37
  syncable_repositories = syncable_repositories.where.not(:download_policy => ::Runcible::Models::YumImporter::DOWNLOAD_ON_DEMAND) if validate_contents
@@ -36,7 +36,7 @@ module Katello
36
36
  param_group :search, Api::V2::ApiController
37
37
  def index
38
38
  options = {:includes => [:sync_plan, :provider]}
39
- respond(:collection => scoped_search(index_relation.uniq, :name, :asc, options))
39
+ respond(:collection => scoped_search(index_relation.distinct, :name, :asc, options))
40
40
  end
41
41
 
42
42
  def index_relation
@@ -71,7 +71,7 @@ module Katello
71
71
  def create
72
72
  params[:product][:label] = labelize_params(product_params) if product_params
73
73
 
74
- product = Product.new(product_params)
74
+ product = Product.new(product_params.to_h)
75
75
 
76
76
  sync_task(::Actions::Katello::Product::Create, product, @organization)
77
77
  respond(:resource => product)
@@ -89,7 +89,7 @@ module Katello
89
89
  param_group :product
90
90
  param :name, String, :desc => N_("Product name")
91
91
  def update
92
- sync_task(::Actions::Katello::Product::Update, @product, product_params)
92
+ sync_task(::Actions::Katello::Product::Update, @product, product_params.to_h)
93
93
 
94
94
  respond(:resource => @product.reload)
95
95
  end
@@ -1,5 +1,5 @@
1
1
  module Katello
2
- class Api::V2::RepositoriesController < Api::V2::ApiController
2
+ class Api::V2::RepositoriesController < Api::V2::ApiController # rubocop:disable Metrics/ClassLength
3
3
  include Katello::Concerns::FilteredAutoCompleteSearch
4
4
 
5
5
  before_action :find_optional_organization, :only => [:index, :auto_complete_search]
@@ -16,8 +16,6 @@ module Katello
16
16
  before_action :error_on_rh_repo, :only => [:destroy]
17
17
 
18
18
  skip_before_action :authorize, :only => [:sync_complete, :gpg_key_content]
19
- skip_before_action :require_org, :only => [:sync_complete]
20
- skip_before_action :require_user, :only => [:sync_complete]
21
19
  skip_before_action :check_content_type, :only => [:upload_content]
22
20
 
23
21
  def_param_group :repo do
@@ -27,7 +25,7 @@ module Katello
27
25
  param :url, String, :desc => N_("repository source url")
28
26
  param :gpg_key_id, :number, :desc => N_("id of the gpg key that will be assigned to the new repository")
29
27
  param :unprotected, :bool, :desc => N_("true if this repository can be published via HTTP")
30
- param :content_type, RepositoryTypeManager.creatable_repository_types.keys, :required => true, :desc => N_("type of repo (either 'yum', 'puppet', 'docker', or 'ostree')")
28
+ param :content_type, RepositoryTypeManager.creatable_repository_types.keys, :required => true, :desc => N_("type of repo (either 'yum', 'deb', 'puppet', 'docker', or 'ostree')")
31
29
  param :checksum_type, String, :desc => N_("checksum of the repository, currently 'sha1' & 'sha256' are supported.")
32
30
  param :docker_upstream_name, String, :desc => N_("name of the upstream docker repository")
33
31
  param :download_policy, ["immediate", "on_demand", "background"], :desc => N_("download policy for yum repos (either 'immediate', 'on_demand', or 'background')")
@@ -37,6 +35,10 @@ module Katello
37
35
  param :upstream_password, String, :desc => N_("Password of the upstream repository user used for authentication")
38
36
  param :ostree_upstream_sync_policy, ::Katello::Repository::OSTREE_UPSTREAM_SYNC_POLICIES, :desc => N_("policies for syncing upstream ostree repositories.")
39
37
  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
+ param :deb_releases, String, :desc => N_("comma separated list of releases to be synched from deb-archive")
39
+ param :deb_components, String, :desc => N_("comma separated list of repo components to be synched from deb-archive")
40
+ param :deb_architectures, String, :desc => N_("comma separated list of architectures to be synched from deb-archive")
41
+ param :ignore_global_proxy, :bool, :desc => N_("if true, will ignore the globally configured proxy when syncing.")
40
42
  end
41
43
 
42
44
  api :GET, "/repositories", N_("List of enabled repositories")
@@ -50,8 +52,9 @@ module Katello
50
52
  param :environment_id, :number, :desc => N_("ID of an environment to show repositories in")
51
53
  param :content_view_id, :number, :desc => N_("ID of a content view to show repositories in")
52
54
  param :content_view_version_id, :number, :desc => N_("ID of a content view version to show repositories in")
55
+ param :deb_id, String, :desc => N_("Id of a deb package to find repositories that contain the deb")
53
56
  param :erratum_id, String, :desc => N_("Id of an erratum to find repositories that contain the erratum")
54
- param :rpm_id, String, :desc => N_("Id of a package to find repositories that contain the rpm")
57
+ param :rpm_id, String, :desc => N_("Id of a rpm package to find repositories that contain the rpm")
55
58
  param :ostree_branch_id, String, :desc => N_("Id of an ostree branch to find repositories that contain that branch")
56
59
  param :library, :bool, :desc => N_("show repositories in Library and the default content view")
57
60
  param :content_type, RepositoryTypeManager.repository_types.keys, :desc => N_("limit to only repositories of this type")
@@ -61,7 +64,7 @@ module Katello
61
64
  param_group :search, Api::V2::ApiController
62
65
  def index
63
66
  options = {:includes => [:gpg_key, :product, :environment]}
64
- respond(:collection => scoped_search(index_relation.uniq, :name, :asc, options))
67
+ respond(:collection => scoped_search(index_relation.distinct, :name, :asc, options))
65
68
  end
66
69
 
67
70
  def index_relation
@@ -70,6 +73,10 @@ module Katello
70
73
  query = query.where(:content_type => params[:content_type]) if params[:content_type]
71
74
  query = query.where(:name => params[:name]) if params[:name]
72
75
 
76
+ if params[:deb_id]
77
+ query = query.joins(:debs).where("#{Deb.table_name}.id" => Deb.with_identifiers(params[:deb_id]))
78
+ end
79
+
73
80
  if params[:erratum_id]
74
81
  query = query.joins(:errata).where("#{Erratum.table_name}.id" => Erratum.with_identifiers(params[:erratum_id]))
75
82
  end
@@ -131,7 +138,7 @@ module Katello
131
138
 
132
139
  api :POST, "/repositories", N_("Create a custom repository")
133
140
  param_group :repo
134
- def create
141
+ def create # rubocop:disable Metrics/MethodLength,Metrics/CyclomaticComplexity
135
142
  repo_params = repository_params
136
143
  unless RepositoryTypeManager.creatable_by_user?(repo_params[:content_type])
137
144
  msg = _("Invalid params provided - content_type must be one of %s") % RepositoryTypeManager.creatable_repository_types.keys.join(",")
@@ -147,9 +154,10 @@ module Katello
147
154
  repo_params[:url] = nil if repo_params[:url].blank?
148
155
  repo_params[:unprotected] = repo_params.key?(:unprotected) ? repo_params[:unprotected] : true
149
156
  repo_params[:gpg_key] = gpg_key
150
- repository = @product.add_repo(Hash[repo_params.slice(:label, :name, :url, :content_type, :arch, :unprotected, :gpg_key, :checksum_type, :download_policy).map { |k, v| [k.to_sym, v] }])
157
+ repository = @product.add_repo(Hash[repo_params.slice(:label, :name, :url, :content_type, :arch, :unprotected, :gpg_key, :checksum_type, :download_policy).to_h.map { |k, v| [k.to_sym, v] }])
151
158
  repository.docker_upstream_name = repo_params[:docker_upstream_name] if repo_params[:docker_upstream_name]
152
159
  repository.mirror_on_sync = ::Foreman::Cast.to_bool(repo_params[:mirror_on_sync]) if repo_params.key?(:mirror_on_sync)
160
+ repository.ignore_global_proxy = ::Foreman::Cast.to_bool(repo_params[:ignore_global_proxy]) if repo_params.key?(:ignore_global_proxy)
153
161
  repository.verify_ssl_on_sync = ::Foreman::Cast.to_bool(repo_params[:verify_ssl_on_sync]) if repo_params.key?(:verify_ssl_on_sync)
154
162
  repository.upstream_username = repo_params[:upstream_username] if repo_params.key?(:upstream_username)
155
163
  repository.upstream_password = repo_params[:upstream_password] if repo_params.key?(:upstream_password)
@@ -157,6 +165,11 @@ module Katello
157
165
  repository.ostree_upstream_sync_policy = repo_params[:ostree_upstream_sync_policy]
158
166
  repository.ostree_upstream_sync_depth = repo_params[:ostree_upstream_sync_depth]
159
167
  end
168
+ if repository.deb?
169
+ repository.deb_releases = repo_params[:deb_releases] if repo_params[:deb_releases]
170
+ repository.deb_components = repo_params[:deb_components] if repo_params[:deb_components]
171
+ repository.deb_architectures = repo_params[:deb_architectures] if repo_params[:deb_architectures]
172
+ end
160
173
  sync_task(::Actions::Katello::Repository::Create, repository, false, true)
161
174
  repository = Repository.find(repository.id)
162
175
  respond_for_show(:resource => repository)
@@ -197,7 +210,7 @@ module Katello
197
210
  :source_url => params[:source_url]
198
211
  }
199
212
 
200
- if params[:source_url].present? && params[:source_url] !~ /\A#{URI.regexp}\z/
213
+ if params[:source_url].present? && params[:source_url] !~ /\A#{URI::DEFAULT_PARSER.make_regexp}\z/
201
214
  fail HttpErrors::BadRequest, _("source URL is malformed")
202
215
  end
203
216
 
@@ -355,7 +368,9 @@ module Katello
355
368
  fail HttpErrors::BadRequest, _('No upload param specified. Either uploads or upload_ids (deprecated) is required.')
356
369
  end
357
370
 
358
- uploads = params['uploads'] || []
371
+ uploads = (params[:uploads] || []).map do |upload|
372
+ upload.permit(:id, :size, :checksum, :name).to_h
373
+ end
359
374
 
360
375
  if params.key?(:upload_ids)
361
376
  ::Foreman::Deprecation.api_deprecation_warning("The parameter upload_ids will be removed in Katello 3.3. Please update to use the uploads parameter.")
@@ -418,13 +433,14 @@ module Katello
418
433
 
419
434
  def repository_params
420
435
  keys = [:download_policy, :mirror_on_sync, :arch, :verify_ssl_on_sync, :upstream_password, :upstream_username,
421
- :ostree_upstream_sync_depth, :ostree_upstream_sync_policy
436
+ :ostree_upstream_sync_depth, :ostree_upstream_sync_policy, :ignore_global_proxy,
437
+ :deb_releases, :deb_components, :deb_architectures
422
438
  ]
423
439
  keys += [:label, :content_type] if params[:action] == "create"
424
440
  if params[:action] == 'create' || @repository.custom?
425
441
  keys += [:url, :gpg_key_id, :unprotected, :name, :checksum_type, :docker_upstream_name]
426
442
  end
427
- params.require(:repository).permit(*keys)
443
+ params.require(:repository).permit(*keys).to_h
428
444
  end
429
445
 
430
446
  def error_on_rh_product
@@ -14,19 +14,11 @@ module Katello
14
14
  api :GET, "/products/:product_id/repository_sets", N_("List repository sets for a product.")
15
15
  param :product_id, :number, :required => true, :desc => N_("ID of a product to list repository sets from")
16
16
  param :name, String, :required => false, :desc => N_("Repository set name to search on")
17
+ param :enabled, :bool, :required => false, :desc => N_("If true, only return repository sets that have been enabled. Defaults to false")
17
18
  param_group :search, Api::V2::ApiController
18
19
  def index
19
- collection = {}
20
- if @product.nil?
21
- collection[:results] = @organization.enabled_product_content
22
- else
23
- collection[:results] = @product.displayable_product_contents
24
- end
25
- # filter on name if it is provided
26
- collection[:results] = collection[:results].select { |pc| pc.content.name == params[:name] } if params[:name]
27
- collection[:subtotal] = collection[:results].size
28
- collection[:total] = collection[:subtotal]
29
- respond_for_index :collection => collection
20
+ respond(:collection => scoped_search(index_relation, nil, nil, :custom_sort => default_sort,
21
+ :resource_class => Katello::ProductContent))
30
22
  end
31
23
 
32
24
  api :GET, "/products/:product_id/repository_sets/:id", N_("Get info about a repository set")
@@ -40,7 +32,7 @@ module Katello
40
32
  param :id, :number, :required => true, :desc => N_("ID of the repository set")
41
33
  param :product_id, :number, :required => true, :desc => N_("ID of a product to list repository sets from")
42
34
  def available_repositories
43
- scan_cdn = sync_task(::Actions::Katello::RepositorySet::ScanCdn, @product, @product_content.content.id)
35
+ scan_cdn = sync_task(::Actions::Katello::RepositorySet::ScanCdn, @product, @product_content.content.cp_content_id)
44
36
  repos = scan_cdn.output[:results]
45
37
 
46
38
  repos = repos.select do |repo|
@@ -83,6 +75,22 @@ module Katello
83
75
 
84
76
  private
85
77
 
78
+ def default_sort
79
+ lambda { |relation| relation.joins(:content).order("name asc") }
80
+ end
81
+
82
+ def index_relation
83
+ if @product.nil?
84
+ relation = @organization.enabled_product_content
85
+ else
86
+ relation = @product.displayable_product_contents
87
+ end
88
+
89
+ relation = relation.enabled(@organization) if ::Foreman::Cast.to_bool(params[:enabled])
90
+ relation = relation.joins(:content).where(:name => params[:name]) if params[:name].present?
91
+ relation
92
+ end
93
+
86
94
  def find_product_content
87
95
  @product_content = @product.product_content_by_id(params[:id])
88
96
  fail HttpErrors::NotFound, _("Couldn't find repository set with id '%s'.") % params[:id] if @product_content.nil?
@@ -106,7 +114,7 @@ module Katello
106
114
  end
107
115
 
108
116
  def substitutions
109
- params.slice(:basearch, :releasever)
117
+ params.permit(:basearch, :releasever).to_h
110
118
  end
111
119
  end
112
120
  end
@@ -1,7 +1,6 @@
1
1
  module Katello
2
2
  class Api::V2::RootController < Api::V2::ApiController
3
3
  skip_before_action :authorize # ok - only shows URLs available
4
- skip_before_action :require_user
5
4
 
6
5
  resource_description do
7
6
  api_version 'v2'
@@ -30,7 +30,7 @@ module Katello
30
30
  param :no_overlap, :bool, :desc => N_("Return subscriptions which do not overlap with a currently-attached subscription")
31
31
  def index
32
32
  collection = scoped_search(
33
- index_relation.uniq, :cp_id, :asc, resource_class: Pool, includes: [:subscription])
33
+ index_relation.distinct, :cp_id, :asc, resource_class: Pool, includes: [:subscription])
34
34
  if params[:activation_key_id]
35
35
  key_pools = @activation_key.get_key_pools
36
36
  collection[:results] = collection[:results].map do |pool|
@@ -82,14 +82,6 @@ module Katello
82
82
  respond_for_index(:collection => subscriptions, :template => 'index')
83
83
  end
84
84
 
85
- api :DELETE, "/activation_keys/:activation_key_id/subscriptions/:id", N_("Unattach a subscription"), :deprecated => true
86
- param :id, String, :desc => N_("Subscription ID"), :required => false
87
- param :activation_key_id, String, :desc => N_("activation key ID")
88
- def destroy
89
- @activation_key.unsubscribe(params[:id])
90
- respond_for_index(:collection => scoped_search(import_subscriptions.uniq, :cp_id, :asc, :resource_class => Pool), :template => "index")
91
- end
92
-
93
85
  api :POST, "/organizations/:organization_id/subscriptions/upload", N_("Upload a subscription manifest")
94
86
  param :organization_id, :number, :desc => N_("Organization id"), :required => true
95
87
  param :content, File, :desc => N_("Subscription manifest file"), :required => true
@@ -171,16 +163,6 @@ module Katello
171
163
  %w(id desc)
172
164
  end
173
165
 
174
- def import_subscriptions
175
- subscriptions = if @activation_key
176
- index_activation_key
177
- else
178
- index_organization
179
- end
180
- cp_ids = subscriptions.collect { |x| x["id"] }
181
- index_relation.where("cp_id not in (?)", cp_ids)
182
- end
183
-
184
166
  def index_activation_key
185
167
  @activation_key.subscriptions
186
168
  end
@@ -23,7 +23,7 @@ module Katello
23
23
  param :interval, SyncPlan::TYPES, :desc => N_("filter by interval")
24
24
  param_group :search, Api::V2::ApiController
25
25
  def index
26
- respond_for_index(:collection => scoped_search(index_relation.uniq, :name, :asc))
26
+ respond_for_index(:collection => scoped_search(index_relation.distinct, :name, :asc))
27
27
  end
28
28
 
29
29
  def index_relation
@@ -86,24 +86,6 @@ module Katello
86
86
  end
87
87
  end
88
88
 
89
- def require_user
90
- if current_user
91
- #don't redirect if the user is trying to set an org
92
- if params[:action] != 'set_org' && params[:controller] != 'user_sessions'
93
- #redirect to originally requested page
94
- unless session[:original_uri].nil?
95
- redirect_to session[:original_uri]
96
- session[:original_uri] = nil
97
- end
98
- end
99
-
100
- return true
101
- else
102
- #save original uri and redirect to login page
103
- session[:original_uri] = request.fullpath
104
- end
105
- end
106
-
107
89
  # render bad params to user
108
90
  # @overload render_bad_parameters()
109
91
  # render bad_parameters with `default_message` and status `400`
@@ -4,9 +4,19 @@ module Katello
4
4
  extend ActiveSupport::Concern
5
5
  include ForemanTasks::Triggers
6
6
 
7
- included do
8
- alias_method_chain :action_permission, :katello
7
+ module Overrides
8
+ def action_permission
9
+ case params[:action]
10
+ when 'host_collections'
11
+ 'edit'
12
+ else
13
+ super
14
+ end
15
+ end
16
+ end
9
17
 
18
+ included do
19
+ prepend Overrides
10
20
  def destroy
11
21
  sync_task(::Actions::Katello::Host::Destroy, @host)
12
22
  process_response(:object => @host)
@@ -21,17 +31,6 @@ module Katello
21
31
  render(:locals => { :resource => @host }, :template => 'katello/api/v2/hosts/show', :status => 200)
22
32
  end
23
33
  end
24
-
25
- private
26
-
27
- def action_permission_with_katello
28
- case params[:action]
29
- when 'host_collections'
30
- 'edit'
31
- else
32
- action_permission_without_katello
33
- end
34
- end
35
34
  end
36
35
  end
37
36
  end