katello 4.4.2.2 → 4.5.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 (444) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +5 -1
  3. data/app/controllers/katello/api/v2/alternate_content_sources_controller.rb +98 -0
  4. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +39 -3
  5. data/app/controllers/katello/api/v2/content_exports_controller.rb +19 -0
  6. data/app/controllers/katello/api/v2/content_imports_controller.rb +13 -16
  7. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +0 -12
  8. data/app/controllers/katello/api/v2/content_views_controller.rb +13 -0
  9. data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
  10. data/app/controllers/katello/api/v2/host_module_streams_controller.rb +8 -2
  11. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +25 -3
  12. data/app/controllers/katello/api/v2/organizations_controller.rb +4 -2
  13. data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +1 -1
  14. data/app/controllers/katello/api/v2/repositories_controller.rb +9 -3
  15. data/app/controllers/katello/api/v2/repository_sets_controller.rb +40 -7
  16. data/app/controllers/katello/api/v2/subscriptions_controller.rb +2 -2
  17. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +1 -1
  18. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +4 -0
  19. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +21 -3
  20. data/app/lib/actions/katello/alternate_content_source/create.rb +24 -0
  21. data/app/lib/actions/katello/alternate_content_source/destroy.rb +27 -0
  22. data/app/lib/actions/katello/alternate_content_source/update.rb +41 -0
  23. data/app/lib/actions/katello/cdn_configuration/update.rb +2 -2
  24. data/app/lib/actions/katello/content_view/destroy.rb +2 -1
  25. data/app/lib/actions/katello/content_view/incremental_updates.rb +7 -3
  26. data/app/lib/actions/katello/content_view/publish.rb +7 -9
  27. data/app/lib/actions/katello/content_view_version/auto_create_products.rb +4 -4
  28. data/app/lib/actions/katello/content_view_version/auto_create_redhat_repositories.rb +6 -4
  29. data/app/lib/actions/katello/content_view_version/auto_create_repositories.rb +6 -4
  30. data/app/lib/actions/katello/content_view_version/import.rb +25 -22
  31. data/app/lib/actions/katello/content_view_version/import_library.rb +0 -1
  32. data/app/lib/actions/katello/content_view_version/import_repository.rb +21 -0
  33. data/app/lib/actions/katello/content_view_version/incremental_update.rb +85 -93
  34. data/app/lib/actions/katello/content_view_version/reset_content_view_repositories_from_metadata.rb +2 -2
  35. data/app/lib/actions/katello/product/content_create.rb +10 -8
  36. data/app/lib/actions/katello/repository/destroy.rb +36 -12
  37. data/app/lib/actions/katello/repository_set/disable_repository.rb +8 -3
  38. data/app/lib/actions/pulp3/alternate_content_source/create.rb +20 -0
  39. data/app/lib/actions/pulp3/alternate_content_source/create_remote.rb +20 -0
  40. data/app/lib/actions/pulp3/alternate_content_source/delete.rb +16 -0
  41. data/app/lib/actions/pulp3/alternate_content_source/delete_remote.rb +16 -0
  42. data/app/lib/actions/pulp3/alternate_content_source/update.rb +16 -0
  43. data/app/lib/actions/pulp3/alternate_content_source/update_remote.rb +17 -0
  44. data/app/lib/actions/pulp3/content_view_version/{import.rb → create_import.rb} +5 -5
  45. data/app/lib/actions/pulp3/content_view_version/create_importer.rb +4 -3
  46. data/app/lib/actions/pulp3/content_view_version/destroy_importer.rb +12 -1
  47. data/app/lib/actions/pulp3/orchestration/alternate_content_source/create.rb +18 -0
  48. data/app/lib/actions/pulp3/orchestration/alternate_content_source/delete.rb +23 -0
  49. data/app/lib/actions/pulp3/orchestration/alternate_content_source/update.rb +18 -0
  50. data/app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb +1 -1
  51. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +51 -0
  52. data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +5 -2
  53. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +4 -1
  54. data/app/lib/actions/pulp3/repository/save_distribution_references.rb +2 -0
  55. data/app/lib/katello/api/v2/error_handling.rb +1 -0
  56. data/app/lib/katello/resources/cdn/katello_cdn.rb +3 -1
  57. data/app/lib/katello/util/errata.rb +2 -3
  58. data/app/lib/katello/validators/alternate_content_source_path_validator.rb +29 -0
  59. data/app/lib/katello/validators/content_default_http_proxy_setting_validator.rb +12 -0
  60. data/app/lib/katello/validators/content_view_environment_validator.rb +10 -5
  61. data/app/models/katello/alternate_content_source.rb +66 -0
  62. data/app/models/katello/authorization/alternate_content_source.rb +33 -0
  63. data/app/models/katello/authorization/repository.rb +3 -3
  64. data/app/models/katello/candlepin/repository_mapper.rb +13 -6
  65. data/app/models/katello/cdn_configuration.rb +15 -15
  66. data/app/models/katello/concerns/content_facet_host_extensions.rb +25 -0
  67. data/app/models/katello/concerns/host_managed_extensions.rb +7 -5
  68. data/app/models/katello/concerns/http_proxy_extensions.rb +14 -0
  69. data/app/models/katello/concerns/organization_extensions.rb +4 -2
  70. data/app/models/katello/concerns/setting_extensions.rb +14 -0
  71. data/app/models/katello/concerns/smart_proxy_extensions.rb +2 -1
  72. data/app/models/katello/content.rb +1 -0
  73. data/app/models/katello/content_credential.rb +6 -0
  74. data/app/models/katello/content_override.rb +7 -3
  75. data/app/models/katello/content_view.rb +33 -2
  76. data/app/models/katello/content_view_erratum_filter.rb +26 -12
  77. data/app/models/katello/content_view_filter.rb +4 -0
  78. data/app/models/katello/content_view_version.rb +12 -0
  79. data/app/models/katello/content_view_version_export_history.rb +3 -1
  80. data/app/models/katello/erratum.rb +9 -5
  81. data/app/models/katello/events/delete_latest_content_view_version.rb +40 -0
  82. data/app/models/katello/host/content_facet.rb +14 -0
  83. data/app/models/katello/host_available_module_stream.rb +12 -0
  84. data/app/models/katello/product_content.rb +1 -0
  85. data/app/models/katello/purpose_sla_status.rb +1 -1
  86. data/app/models/katello/purpose_status.rb +2 -2
  87. data/app/models/katello/repository.rb +7 -4
  88. data/app/models/katello/root_repository.rb +1 -1
  89. data/app/models/katello/smart_proxy_alternate_content_source.rb +8 -0
  90. data/app/models/katello/sync_plan.rb +1 -1
  91. data/app/presenters/katello/product_content_presenter.rb +15 -0
  92. data/app/services/katello/applicable_host_queue.rb +1 -1
  93. data/app/services/katello/content_unit_indexer.rb +2 -1
  94. data/app/services/katello/product_content_finder.rb +12 -2
  95. data/app/services/katello/pulp3/alternate_content_source.rb +117 -0
  96. data/app/services/katello/pulp3/api/file.rb +8 -0
  97. data/app/services/katello/pulp3/api/yum.rb +8 -0
  98. data/app/services/katello/pulp3/content_view_version/export.rb +27 -5
  99. data/app/services/katello/pulp3/content_view_version/import.rb +97 -71
  100. data/app/services/katello/pulp3/content_view_version/import_export_common.rb +4 -4
  101. data/app/services/katello/pulp3/content_view_version/import_gpg_keys.rb +13 -11
  102. data/app/services/katello/pulp3/content_view_version/import_validator.rb +67 -72
  103. data/app/services/katello/pulp3/content_view_version/importable_products.rb +40 -24
  104. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +88 -39
  105. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +2 -2
  106. data/app/services/katello/pulp3/content_view_version/metadata_map.rb +117 -0
  107. data/app/services/katello/pulp3/pulp_content_unit.rb +6 -1
  108. data/app/services/katello/pulp3/repository/yum.rb +70 -12
  109. data/app/services/katello/pulp3/repository.rb +7 -91
  110. data/app/services/katello/pulp3/service_common.rb +66 -0
  111. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +4 -1
  112. data/app/services/katello/ui_notifications/content_view/delete_latest_version_failure.rb +22 -0
  113. data/app/views/foreman/job_templates/change_content_source.erb +1 -1
  114. data/app/views/foreman/job_templates/install_errata.erb +5 -5
  115. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +7 -6
  116. data/app/views/foreman/job_templates/install_group.erb +4 -4
  117. data/app/views/foreman/job_templates/install_package.erb +4 -4
  118. data/app/views/foreman/job_templates/install_packages_by_search_query.erb +3 -3
  119. data/app/views/foreman/job_templates/remove_group.erb +4 -4
  120. data/app/views/foreman/job_templates/remove_package.erb +4 -4
  121. data/app/views/foreman/job_templates/remove_packages_by_search_query.erb +3 -3
  122. data/app/views/foreman/job_templates/resolve_traces.erb +2 -2
  123. data/app/views/foreman/job_templates/restart_services.erb +3 -3
  124. data/app/views/foreman/job_templates/update_group.erb +4 -4
  125. data/app/views/foreman/job_templates/update_package.erb +4 -4
  126. data/app/views/foreman/job_templates/update_packages_by_search_query.erb +3 -3
  127. data/app/views/katello/api/v2/alternate_content_sources/base.json.rabl +15 -0
  128. data/app/views/katello/api/v2/alternate_content_sources/index.json.rabl +7 -0
  129. data/app/views/katello/api/v2/alternate_content_sources/show.json.rabl +3 -0
  130. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
  131. data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +2 -3
  132. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +1 -1
  133. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  134. data/app/views/katello/api/v2/environments/show.json.rabl +2 -0
  135. data/app/views/katello/api/v2/errata/_counts.json.rabl +2 -2
  136. data/app/views/katello/api/v2/host_module_streams/base.json.rabl +2 -2
  137. data/app/views/katello/api/v2/hosts/host_collections.json.rabl +1 -1
  138. data/app/views/katello/api/v2/organizations/show.json.rabl +7 -1
  139. data/app/views/katello/api/v2/repositories/show.json.rabl +2 -1
  140. data/app/views/katello/sync_management/_repo.html.erb +8 -29
  141. data/config/routes/api/v2.rb +7 -0
  142. data/db/migrate/20150930183738_migrate_content_hosts.rb +0 -399
  143. data/db/migrate/20171025163149_remove_use_pulp_oauth_setting.rb +1 -1
  144. data/db/migrate/20171114150937_cleanup_installed_packages.rb +1 -1
  145. data/db/migrate/20180402160223_clean_up_force_post_sync_action_setting.rb +1 -1
  146. data/db/migrate/20211129200124_remove_dependency_solving_algorithm_setting.rb +1 -1
  147. data/db/migrate/20211220185935_clean_duplicate_content_units.rb +10 -12
  148. data/db/migrate/20220110223754_update_disconnected_settings.rb +5 -5
  149. data/db/migrate/20220117151612_add_alternate_content_sources.rb +48 -0
  150. data/db/migrate/20220124191056_add_type_to_cdn_configuration.rb +9 -4
  151. data/db/migrate/20220209203251_add_generated_for_to_content_views.rb +13 -0
  152. data/db/migrate/20220209205137_expand_sync_timeout_settings.rb +7 -7
  153. data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +12 -0
  154. data/db/migrate/20220404190836_delete_old_setting_data.rb +9 -0
  155. data/db/migrate/20220405220616_update_cdn_configuration_type.rb +11 -0
  156. data/db/migrate/20220419193414_content_settings_to_dsl_category.rb +5 -0
  157. data/db/seeds.d/110-content-view-autopublish.rb +13 -0
  158. data/db/seeds.d/150-module_job_templates.rb +1 -1
  159. data/engines/bastion/README.md +1 -0
  160. data/engines/bastion/app/assets/javascripts/bastion/components/bst-modal.directive.js +1 -0
  161. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -0
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +4 -2
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +10 -5
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +1 -0
  165. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +1 -0
  166. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +1 -0
  167. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +1 -1
  168. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +1 -1
  169. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +8 -0
  170. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +4 -2
  171. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  172. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +10 -0
  173. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-deb-repositories.html +26 -0
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-debs.html +27 -0
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.controller.js +1 -0
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +22 -0
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +13 -7
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +63 -17
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +7 -8
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +10 -1
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +21 -3
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +8 -9
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +7 -5
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -1
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-create.controller.js +1 -1
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +1 -1
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +1 -0
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +6 -1
  189. data/lib/katello/engine.rb +1 -5
  190. data/lib/katello/permission_creator.rb +32 -4
  191. data/lib/katello/plugin.rb +378 -4
  192. data/lib/katello/tasks/reset.rake.bak +67 -0
  193. data/lib/katello/tasks/update_content_default_http_proxy.rake +2 -3
  194. data/lib/katello/version.rb +1 -1
  195. data/locale/action_names.rb +47 -41
  196. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  197. data/locale/bn/katello.po +820 -106
  198. data/locale/bn/katello.po.time_stamp +0 -0
  199. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  200. data/locale/cs/katello.po +818 -104
  201. data/locale/cs/katello.po.time_stamp +0 -0
  202. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  203. data/locale/de/katello.po +893 -179
  204. data/locale/de/katello.po.time_stamp +0 -0
  205. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  206. data/locale/en/katello.po +817 -103
  207. data/locale/en/katello.po.time_stamp +0 -0
  208. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  209. data/locale/es/katello.po +882 -168
  210. data/locale/es/katello.po.time_stamp +0 -0
  211. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  212. data/locale/fr/katello.po +1219 -505
  213. data/locale/fr/katello.po.time_stamp +0 -0
  214. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  215. data/locale/gu/katello.po +826 -112
  216. data/locale/gu/katello.po.time_stamp +0 -0
  217. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  218. data/locale/hi/katello.po +826 -112
  219. data/locale/hi/katello.po.time_stamp +0 -0
  220. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  221. data/locale/it/katello.po +863 -148
  222. data/locale/it/katello.po.time_stamp +0 -0
  223. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  224. data/locale/ja/katello.po +1216 -499
  225. data/locale/ja/katello.po.time_stamp +0 -0
  226. data/locale/katello.pot +3847 -2507
  227. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  228. data/locale/kn/katello.po +826 -112
  229. data/locale/kn/katello.po.time_stamp +0 -0
  230. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/ko/katello.po +912 -198
  232. data/locale/ko/katello.po.time_stamp +0 -0
  233. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  234. data/locale/mr/katello.po +826 -112
  235. data/locale/mr/katello.po.time_stamp +0 -0
  236. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/or/katello.po +826 -112
  238. data/locale/or/katello.po.time_stamp +0 -0
  239. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  240. data/locale/pa/katello.po +826 -112
  241. data/locale/pa/katello.po.time_stamp +0 -0
  242. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  243. data/locale/pt/katello.po +817 -103
  244. data/locale/pt/katello.po.time_stamp +0 -0
  245. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  246. data/locale/pt_BR/katello.po +879 -165
  247. data/locale/pt_BR/katello.po.time_stamp +0 -0
  248. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  249. data/locale/ru/katello.po +927 -213
  250. data/locale/ru/katello.po.time_stamp +0 -0
  251. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  252. data/locale/ta/katello.po +820 -106
  253. data/locale/ta/katello.po.time_stamp +0 -0
  254. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  255. data/locale/te/katello.po +826 -112
  256. data/locale/te/katello.po.time_stamp +0 -0
  257. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  258. data/locale/zh_CN/katello.po +1202 -486
  259. data/locale/zh_CN/katello.po.time_stamp +0 -0
  260. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  261. data/locale/zh_TW/katello.po +856 -142
  262. data/locale/zh_TW/katello.po.time_stamp +0 -0
  263. data/webpack/components/EditableTextInput/EditableTextInput.js +20 -5
  264. data/webpack/components/Errata/index.js +38 -8
  265. data/webpack/components/Packages/index.js +1 -4
  266. data/webpack/components/Search/Search.js +18 -3
  267. data/webpack/components/SelectAllCheckbox/index.js +1 -0
  268. data/webpack/components/SelectableDropdown/SelectableDropdown.js +4 -2
  269. data/webpack/components/Table/EmptyStateMessage.js +21 -7
  270. data/webpack/components/Table/MainTable.js +29 -4
  271. data/webpack/components/Table/TableHooks.js +63 -19
  272. data/webpack/components/Table/TableWrapper.js +4 -2
  273. data/webpack/components/Table/components/SortableColumnHeaders.js +19 -0
  274. data/webpack/components/Table/components/TranslatedPlural.js +57 -0
  275. data/webpack/components/TypeAhead/TypeAhead.js +8 -0
  276. data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.js +13 -11
  277. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +5 -2
  278. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +27 -0
  279. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +256 -0
  280. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +202 -0
  281. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewActions.js +19 -0
  282. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewConstants.js +2 -0
  283. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +131 -0
  284. data/webpack/components/extensions/HostDetails/Cards/{__tests__ → ContentViewDetailsCard/__tests__}/contentViewDetailsCard.test.js +22 -0
  285. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +443 -0
  286. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/envPaths.fixtures.json +320 -0
  287. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +57 -33
  288. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +3 -0
  289. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsActions.js +30 -0
  290. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +187 -0
  291. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsConstants.js +7 -0
  292. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +227 -0
  293. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsSelectors.js +18 -0
  294. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/availableHostCollections.fixtures.json +106 -0
  295. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsCard.test.js +110 -0
  296. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +235 -0
  297. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/removableHostCollections.fixtures.json +45 -0
  298. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +33 -8
  299. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +44 -0
  300. data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +107 -0
  301. data/webpack/components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions.js +38 -0
  302. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +62 -39
  303. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/HostErrataActions.js +1 -7
  304. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsActions.js +1 -3
  305. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsConstants.js +28 -0
  306. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +486 -116
  307. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/__tests__/moduleStreamsTab.test.js +147 -1
  308. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/__tests__/modules.fixtures.json +6 -3
  309. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesActions.js +1 -7
  310. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +2 -1
  311. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +48 -19
  312. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +35 -47
  313. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
  314. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsActions.js +33 -54
  315. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsConstants.js +20 -0
  316. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +269 -132
  317. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +47 -11
  318. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +30 -42
  319. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +36 -1
  320. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +94 -46
  321. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +18 -2
  322. data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +6 -0
  323. data/webpack/containers/Application/config.js +5 -0
  324. data/webpack/global_index.js +30 -7
  325. data/webpack/global_test_setup.js +13 -0
  326. data/webpack/redux/actions/RedHatRepositories/enabled.js +2 -1
  327. data/webpack/redux/actions/RedHatRepositories/helpers.js +9 -8
  328. data/webpack/scenes/AlternateContentSources/ACSActions.js +53 -0
  329. data/webpack/scenes/AlternateContentSources/ACSConstants.js +4 -0
  330. data/webpack/scenes/AlternateContentSources/ACSIndexPage.js +23 -0
  331. data/webpack/scenes/AlternateContentSources/ACSSelectors.js +15 -0
  332. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +152 -0
  333. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsIndex.fixtures.json +91 -0
  334. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +67 -0
  335. data/webpack/scenes/AlternateContentSources/index.js +4 -0
  336. data/webpack/scenes/Content/Details/ContentRepositories.js +1 -0
  337. data/webpack/scenes/Content/Table/ContentTable.js +1 -0
  338. data/webpack/scenes/ContentViews/ContentViewsActions.js +6 -2
  339. data/webpack/scenes/ContentViews/ContentViewsConstants.js +11 -3
  340. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +2 -1
  341. data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +10 -1
  342. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +4 -3
  343. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +1 -1
  344. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +7 -5
  345. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionFinish.js +29 -21
  346. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +15 -8
  347. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +3 -3
  348. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +4 -4
  349. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +3 -1
  350. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +4 -4
  351. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +34 -8
  352. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +33 -29
  353. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +130 -79
  354. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +17 -3
  355. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +2 -1
  356. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +2 -1
  357. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +6 -1
  358. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +41 -21
  359. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +38 -20
  360. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +2 -0
  361. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +8 -1
  362. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +9 -1
  363. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +2 -1
  364. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +1 -0
  365. data/webpack/scenes/ContentViews/Details/Filters/Rules/ContainerTag/AddEditContainerTagRuleModal.js +27 -12
  366. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +39 -17
  367. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +27 -10
  368. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +46 -23
  369. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +3 -2
  370. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +5 -2
  371. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +161 -108
  372. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +7 -7
  373. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
  374. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +58 -0
  375. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteContextWrapper.js +45 -0
  376. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteHelpers.js +30 -0
  377. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +56 -0
  378. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +126 -0
  379. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/FinishBulkDelete.js +61 -0
  380. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +196 -0
  381. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +220 -0
  382. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +104 -0
  383. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteModal.test.js +122 -0
  384. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteVersions.fixtures.json +600 -0
  385. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentView.fixtures.json +1504 -0
  386. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentViewVersion.fixtures.json +936 -0
  387. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/environmentPaths.fixtures.json +261 -0
  388. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +163 -0
  389. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/bulkDeleteSteps.js +79 -0
  390. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +192 -167
  391. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +2 -5
  392. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionDeleteFinish.js +38 -53
  393. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +1 -1
  394. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +6 -12
  395. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +1 -0
  396. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +1 -0
  397. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +1 -0
  398. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.js +8 -20
  399. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +23 -13
  400. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +3 -0
  401. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.fixtures.json +4 -4
  402. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +0 -3
  403. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +4 -4
  404. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +12 -14
  405. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
  406. data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +96 -117
  407. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +13 -19
  408. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +9 -20
  409. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +165 -148
  410. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +2 -0
  411. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +4 -4
  412. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +14 -3
  413. data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +1 -1
  414. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +4 -3
  415. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +9 -5
  416. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +6 -1
  417. data/webpack/scenes/ContentViews/components/TaskPresenter/TaskPresenter.js +40 -35
  418. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +2 -2
  419. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +1 -1
  420. data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +4 -4
  421. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +1 -1
  422. data/webpack/scenes/ContentViews/helpers.js +3 -0
  423. data/webpack/scenes/Hosts/ChangeContentSource/helpers.js +5 -0
  424. data/webpack/scenes/RedHatRepositories/RedHatRepositoriesPage.js +3 -3
  425. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +2 -1
  426. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/EnabledRepository.test.js +2 -0
  427. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationConstants.js +3 -3
  428. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnTypeForm.js +2 -0
  429. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{AirGappedTypeForm.js → ExportSyncForm.js} +7 -6
  430. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{UpstreamServerTypeForm.js → NetworkSyncForm.js} +15 -7
  431. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{AirGappedTypeForm.test.js → ExportSyncForm.test.js} +4 -4
  432. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{UpstreamServerTypeForm.test.js → NetworkSyncForm.test.js} +8 -8
  433. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/index.js +11 -11
  434. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +1 -0
  435. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +8 -7
  436. data/webpack/scenes/Tasks/TaskActions.js +6 -0
  437. data/webpack/scenes/Tasks/TaskSelectors.js +11 -0
  438. data/webpack/scenes/Tasks/helpers.js +33 -5
  439. data/webpack/utils/helpers.js +2 -0
  440. metadata +158 -40
  441. data/app/models/setting/content.rb +0 -201
  442. data/webpack/components/Table/__test__/useBulkSelect.test.js +0 -99
  443. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard.js +0 -96
  444. data/webpack/scenes/ContentViews/Details/DetailsContainer.js +0 -36
@@ -398,6 +398,14 @@ msgid_plural "{{ product.sync_summary.success}} successfully synced repositories
398
398
  msgstr[0] ""
399
399
  msgstr[1] ""
400
400
 
401
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
402
+ msgid "A comma-separated list of container image tags to exclude when syncing. Source images are excluded by default because they are often large and unwanted."
403
+ msgstr ""
404
+
405
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
406
+ msgid "A comma-separated list of container image tags to include when syncing."
407
+ msgstr ""
408
+
401
409
  #: app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html
402
410
  msgid "A composite view contains other content views."
403
411
  msgstr ""
@@ -888,6 +896,7 @@ msgstr ""
888
896
  #: app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-deb.html
889
897
  #: app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html
890
898
  #: app/assets/javascripts/bastion_katello/debs/views/debs.html
899
+ #: app/assets/javascripts/bastion_katello/environments/details/views/environment-debs.html
891
900
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
892
901
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-debs.html
893
902
  msgid "Architecture"
@@ -967,7 +976,7 @@ msgid "Are you sure you want to remove product \"{{ product.name }}\"?"
967
976
  msgstr ""
968
977
 
969
978
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html
970
- msgid "Are you sure you want to remove repository {{ repositoryWrapper.repository.name }}?"
979
+ msgid "Are you sure you want to remove repository {{ repositoryWrapper.repository.name }} from all content views?"
971
980
  msgstr ""
972
981
 
973
982
  #: app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html
@@ -1221,6 +1230,7 @@ msgstr ""
1221
1230
  #: app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html
1222
1231
  #: app/assets/javascripts/bastion_katello/errata/views/apply-errata-select-content-hosts.html
1223
1232
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync.html
1233
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html
1224
1234
  #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery.html
1225
1235
  msgid "Cancel"
1226
1236
  msgstr ""
@@ -1578,6 +1588,7 @@ msgstr ""
1578
1588
  #: app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html
1579
1589
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html
1580
1590
  #: app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html
1591
+ #: app/assets/javascripts/bastion_katello/environments/details/views/environment-deb-repositories.html
1581
1592
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-repositories.html
1582
1593
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment.html
1583
1594
  #: app/assets/javascripts/bastion_katello/errata/details/views/erratum-content-hosts.html
@@ -1840,13 +1851,22 @@ msgstr ""
1840
1851
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html
1841
1852
  #: app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html
1842
1853
  #: app/assets/javascripts/bastion_katello/debs/views/debs.html
1854
+ #: app/assets/javascripts/bastion_katello/environments/content.service.js
1843
1855
  msgid "Deb Packages"
1844
1856
  msgstr ""
1845
1857
 
1858
+ #: app/assets/javascripts/bastion_katello/environments/views/environments.html
1859
+ msgid "Deb Packages <div>{{ library.counts.debs || 0 }}</div>"
1860
+ msgstr ""
1861
+
1846
1862
  #: app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-applicable.html
1847
1863
  msgid "Deb Packages for:"
1848
1864
  msgstr ""
1849
1865
 
1866
+ #: app/assets/javascripts/bastion_katello/environments/views/environments.html
1867
+ msgid "Deb Repositories <div>{{ library.counts.deb_repositories || 0 }}</div>"
1868
+ msgstr ""
1869
+
1850
1870
  #: app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html
1851
1871
  #: app/assets/javascripts/bastion_katello/debs/details/views/deb.html
1852
1872
  msgid "Deb:"
@@ -1860,6 +1880,10 @@ msgstr ""
1860
1880
  msgid "Default Status"
1861
1881
  msgstr ""
1862
1882
 
1883
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html
1884
+ msgid "Delete"
1885
+ msgstr ""
1886
+
1863
1887
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-destroy-modal.html
1864
1888
  msgid "Delete {{ table.numSelected }} Hosts?"
1865
1889
  msgstr ""
@@ -2044,10 +2068,6 @@ msgstr ""
2044
2068
  msgid "Docker Repositories"
2045
2069
  msgstr ""
2046
2070
 
2047
- #: app/assets/javascripts/bastion_katello/environments/views/environments.html
2048
- msgid "Docker Repositories <div>{{ library.counts.docker_repositories || 0 }}</div>"
2049
- msgstr ""
2050
-
2051
2071
  #: app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html
2052
2072
  msgid "Docker Repository Selection"
2053
2073
  msgstr ""
@@ -2263,6 +2283,11 @@ msgstr ""
2263
2283
  msgid "Exclude all RPMs with no errata."
2264
2284
  msgstr ""
2265
2285
 
2286
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
2287
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
2288
+ msgid "Exclude Tags"
2289
+ msgstr ""
2290
+
2266
2291
  #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html
2267
2292
  msgid "Existing Product"
2268
2293
  msgstr ""
@@ -2632,6 +2657,11 @@ msgstr ""
2632
2657
  msgid "Include all RPMs with no errata."
2633
2658
  msgstr ""
2634
2659
 
2660
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
2661
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
2662
+ msgid "Include Tags"
2663
+ msgstr ""
2664
+
2635
2665
  #: app/assets/javascripts/bastion_katello/content-views/details/filters/views/filters.html
2636
2666
  #: app/assets/javascripts/bastion_katello/content-views/details/filters/views/new-filter.html
2637
2667
  msgid "Inclusion Type"
@@ -2778,6 +2808,10 @@ msgstr ""
2778
2808
  msgid "Last Puppet Report"
2779
2809
  msgstr ""
2780
2810
 
2811
+ #: app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js
2812
+ msgid "Last reclaim space failed:"
2813
+ msgstr ""
2814
+
2781
2815
  #: app/assets/javascripts/bastion_katello/content-views/details/views/content-view-deb-repositories.html
2782
2816
  #: app/assets/javascripts/bastion_katello/content-views/details/views/content-view-docker-repositories.html
2783
2817
  #: app/assets/javascripts/bastion_katello/content-views/details/views/content-view-file-repositories.html
@@ -2792,6 +2826,10 @@ msgstr ""
2792
2826
  msgid "Last Sync"
2793
2827
  msgstr ""
2794
2828
 
2829
+ #: app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js
2830
+ msgid "Last sync failed:"
2831
+ msgstr ""
2832
+
2795
2833
  #: app/assets/javascripts/bastion_katello/products/views/partials/product-table-sync-status.html
2796
2834
  msgid "Last synced"
2797
2835
  msgstr ""
@@ -2877,10 +2915,6 @@ msgstr ""
2877
2915
  msgid "Limit Repository Sets to only those available in this Host's Lifecycle Environment"
2878
2916
  msgstr ""
2879
2917
 
2880
- #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
2881
- msgid "Limit Sync Tags"
2882
- msgstr ""
2883
-
2884
2918
  #: app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html
2885
2919
  msgid "Limit to environment"
2886
2920
  msgstr ""
@@ -3153,6 +3187,8 @@ msgstr ""
3153
3187
  #: app/assets/javascripts/bastion_katello/debs/views/debs.html
3154
3188
  #: app/assets/javascripts/bastion_katello/docker-tags/views/docker-tags.html
3155
3189
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-content-views.html
3190
+ #: app/assets/javascripts/bastion_katello/environments/details/views/environment-deb-repositories.html
3191
+ #: app/assets/javascripts/bastion_katello/environments/details/views/environment-debs.html
3156
3192
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-details.html
3157
3193
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html
3158
3194
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-module-streams.html
@@ -3391,7 +3427,7 @@ msgid "No products are available to add to this Sync Plan."
3391
3427
  msgstr ""
3392
3428
 
3393
3429
  #: app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html
3394
- msgid "No products are have been added to this Sync Plan."
3430
+ msgid "No products have been added to this Sync Plan."
3395
3431
  msgstr ""
3396
3432
 
3397
3433
  #: app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-release-version-modal.html
@@ -3810,6 +3846,7 @@ msgstr ""
3810
3846
  #: app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-yum.html
3811
3847
  #: app/assets/javascripts/bastion_katello/debs/details/views/deb-repositories.html
3812
3848
  #: app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-info.html
3849
+ #: app/assets/javascripts/bastion_katello/environments/details/views/environment-deb-repositories.html
3813
3850
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-docker.html
3814
3851
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-repositories.html
3815
3852
  #: app/assets/javascripts/bastion_katello/errata/details/views/erratum-repositories.html
@@ -3975,6 +4012,11 @@ msgstr ""
3975
4012
  msgid "Publishing and promoting to 1 environment."
3976
4013
  msgstr ""
3977
4014
 
4015
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4016
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
4017
+ msgid "Publishing Settings"
4018
+ msgstr ""
4019
+
3978
4020
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-provisioning-info.html
3979
4021
  msgid "Puppet Environment"
3980
4022
  msgstr ""
@@ -4087,9 +4129,6 @@ msgid "Release Version:"
4087
4129
  msgstr ""
4088
4130
 
4089
4131
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
4090
- msgid "Releases"
4091
- msgstr ""
4092
-
4093
4132
  #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
4094
4133
  msgid "Releases/Distributions"
4095
4134
  msgstr ""
@@ -4653,10 +4692,6 @@ msgstr ""
4653
4692
  msgid "Selecting this option will result in the Version being completely deleted and no longer being available for promotion. The version must be removed from all Lifecycle Environments in order to select this option."
4654
4693
  msgstr ""
4655
4694
 
4656
- #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html
4657
- msgid "Serve via HTTP"
4658
- msgstr ""
4659
-
4660
4695
  #: app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html
4661
4696
  #: app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html
4662
4697
  #: app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html
@@ -5188,6 +5223,7 @@ msgid "The Remote Execution plugin needs to be installed in order to resolve Tra
5188
5223
  msgstr ""
5189
5224
 
5190
5225
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
5226
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
5191
5227
  msgid "The repository will be enabled by default on content hosts with the selected architecture."
5192
5228
  msgstr ""
5193
5229
 
@@ -5365,6 +5401,10 @@ msgstr ""
5365
5401
  msgid "This organization has Simple Content Access enabled. Hosts are not required to have subscriptions attached to access repositories."
5366
5402
  msgstr ""
5367
5403
 
5404
+ #: app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html
5405
+ msgid "This organization is not using <a target=\"_blank\" href=\"https://access.redhat.com/articles/simple-content-access\">Simple Content Access.</a> Legacy subscription management is deprecated and will be removed in a future version."
5406
+ msgstr ""
5407
+
5368
5408
  #: app/assets/javascripts/bastion_katello/content-views/deletion/views/version-deletion-environments.html
5369
5409
  msgid "This Version cannot be deleted from some of the Lifecycle Environments due to one of the reasons below."
5370
5410
  msgstr ""
@@ -5434,6 +5474,10 @@ msgstr ""
5434
5474
  msgid "Traces for:"
5435
5475
  msgstr ""
5436
5476
 
5477
+ #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html
5478
+ msgid "Turn on Setting > Content > Allow deleting repositories in published content views"
5479
+ msgstr ""
5480
+
5437
5481
  #: app/assets/javascripts/bastion_katello/common/views/subscription-add-or-remove.html
5438
5482
  #: app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html
5439
5483
  #: app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-repositories.html
@@ -5481,6 +5525,7 @@ msgstr ""
5481
5525
 
5482
5526
  #: app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html
5483
5527
  #: app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
5528
+ #: app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html
5484
5529
  msgid "Unprotected"
5485
5530
  msgstr ""
5486
5531
 
@@ -5725,6 +5770,7 @@ msgstr ""
5725
5770
  #: app/assets/javascripts/bastion_katello/debs/details/views/deb-content-views.html
5726
5771
  #: app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html
5727
5772
  #: app/assets/javascripts/bastion_katello/debs/views/debs.html
5773
+ #: app/assets/javascripts/bastion_katello/environments/details/views/environment-debs.html
5728
5774
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-module-streams.html
5729
5775
  #: app/assets/javascripts/bastion_katello/environments/details/views/environment-packages.html
5730
5776
  #: app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html
@@ -89,7 +89,7 @@ angular.module('Bastion.repositories').controller('RepositoryDetailsInfoControll
89
89
  return deferred.promise;
90
90
  };
91
91
 
92
- $scope.save = function (repository, saveUpstreamAuth) {
92
+ $scope.save = function (repository) {
93
93
  var deferred = $q.defer();
94
94
  var fields = ['upstream_password', 'upstream_username', 'upstream_authentication_token', 'ansible_collection_auth_token', 'ansible_collection_auth_url', 'ansible_collection_requirements'];
95
95
  if (repository.content_type === 'yum' && typeof repository.ignore_srpms !== 'undefined') {
@@ -99,13 +99,6 @@ angular.module('Bastion.repositories').controller('RepositoryDetailsInfoControll
99
99
  repository['ignorable_content'] = [];
100
100
  }
101
101
  }
102
-
103
- if (!saveUpstreamAuth) {
104
- repository['upstream_username'] = null;
105
- repository['upstream_password'] = null;
106
- repository['upstream_authentication_token'] = null;
107
- }
108
-
109
102
  if ($scope.genericRemoteOptions && $scope.genericRemoteOptions !== []) {
110
103
  $scope.genericRemoteOptions.forEach(function(option) {
111
104
  if (option.type === "Array") {
@@ -141,6 +134,9 @@ angular.module('Bastion.repositories').controller('RepositoryDetailsInfoControll
141
134
  repository[field] = null;
142
135
  }
143
136
  });
137
+ if (!repository['upstream_username']) {
138
+ repository['upstream_password'] = null;
139
+ }
144
140
  repository.os_versions = $scope.osVersionsParam();
145
141
  repository.$update(function (response) {
146
142
  deferred.resolve(response);
@@ -246,6 +242,9 @@ angular.module('Bastion.repositories').controller('RepositoryDetailsInfoControll
246
242
  $scope.genericRemoteOptions = RepositoryTypesService.getAttribute($scope.repository, "generic_remote_options");
247
243
  if ($scope.genericRemoteOptions && $scope.genericRemoteOptions !== []) {
248
244
  remOptions = angular.fromJson($scope.repository.generic_remote_options);
245
+ if (remOptions === null) {
246
+ return null;
247
+ }
249
248
  Object.keys(remOptions).forEach(function(key) {
250
249
  if (remOptions[key]) {
251
250
  optionIndex = $scope.genericRemoteOptions.map(function(option) {
@@ -39,7 +39,12 @@
39
39
 
40
40
  $scope.repositoryWrapper = {
41
41
  repository: $scope.repository,
42
- repositoryVersions: {}
42
+ repositoryVersions: {},
43
+ forceDelete: false
44
+ };
45
+
46
+ $scope.updateForceDelete = function () {
47
+ $scope.repositoryWrapper.forceDelete = !($scope.repositoryWrapper.forceDelete);
43
48
  };
44
49
 
45
50
  $scope.product = Product.get({id: $scope.$stateParams.productId}, function () {
@@ -144,7 +149,11 @@
144
149
  if ($scope.denied('deletable', repo)) {
145
150
  readOnlyReason = 'permissions';
146
151
  }
152
+ if (readOnlyReason === null && !repo.permissions.deletable_across_cv && repo.content_view_versions.length > 0 ) {
153
+ readOnlyReason = 'setting';
154
+ }
147
155
  }
156
+
148
157
  return readOnlyReason;
149
158
  };
150
159
  }
@@ -78,6 +78,12 @@
78
78
  tooltip-placement="left"
79
79
  tooltip-append-to-body="true">
80
80
  </i>
81
+ <i class="fa fa-question-circle" ng-switch-when="setting"
82
+ uib-tooltip="{{ 'Turn on Setting > Content > Allow deleting repositories in published content views' | translate }}"
83
+ tooltip-animation="false"
84
+ tooltip-placement="left"
85
+ tooltip-append-to-body="true">
86
+ </i>
81
87
  </span>
82
88
  </span>
83
89
  </li>
@@ -86,7 +92,7 @@
86
92
  <div bst-modal="removeRepository(repository)" model="repositoryWrapper">
87
93
  <div data-block="modal-header" translate>Remove Repository {{ repositoryWrapper.repository.name }}?</div>
88
94
  <div data-block="modal-body">
89
- <div ng-show="repositoryWrapper.repository.promoted" style="margin-bottom: 1em">
95
+ <div ng-show="repositoryWrapper.repository.content_view_versions.length !== 0" style="margin-bottom: 1em">
90
96
  <span translate>Repository will also be removed from the following published content view versions!</span>
91
97
  <table class="table table-striped table-bordered" style="margin-top: 1em">
92
98
  <thead>
@@ -113,9 +119,21 @@
113
119
  </tbody>
114
120
  </table>
115
121
  </div>
116
- <span translate>Are you sure you want to remove repository {{ repositoryWrapper.repository.name }}?</span>
122
+ <input type="checkbox"
123
+ ng-show="repositoryWrapper.repository.content_view_versions.length !== 0"
124
+ ng-model="repositoryWrapper.forceDelete"
125
+ ng-change="updateForceDelete()"/>
126
+ <span translate> Are you sure you want to remove repository {{ repositoryWrapper.repository.name }} from all content views?</span>
127
+ </div>
128
+ <div data-block="modal-footer">
129
+ <span data-block="modal-confirm-button">
130
+ <button class="btn btn-danger" ng-disabled="repositoryWrapper.repository.content_view_versions.length !== 0 && !repositoryWrapper.forceDelete" ng-click="ok()">
131
+ <span translate>Delete</span>
132
+ </button>
133
+ </span>
134
+ <button class="btn btn-default" ng-click="cancel()" translate>Cancel</button>
135
+ </div>
117
136
  </div>
118
- </div>
119
137
  </span>
120
138
  </div>
121
139
 
@@ -63,7 +63,7 @@
63
63
  <dt ng-show="repository.content_type !== 'docker'" translate>Upstream URL</dt>
64
64
  <dt ng-show="repository.content_type === 'docker'" translate>Registry URL</dt>
65
65
  <dd bst-edit-text="repository.url"
66
- on-save="save(repository, true)"
66
+ on-save="save(repository)"
67
67
  readonly="product.redhat || denied('edit_products', product)">
68
68
  </dd>
69
69
 
@@ -82,7 +82,7 @@
82
82
  </span>
83
83
 
84
84
  <span ng-if="repository.content_type == 'deb'">
85
- <dt translate>Releases</dt>
85
+ <dt translate>Releases/Distributions</dt>
86
86
  <dd bst-edit-text="repository.deb_releases"
87
87
  on-save="save(repository)"
88
88
  readonly="denied('edit_products', product)">
@@ -134,7 +134,7 @@
134
134
  <dt translate>Ansible Collection Authorization</dt>
135
135
  <dd bst-edit-custom="repository.ansible_collection_auth_exists"
136
136
  readonly="denied('edit_products', product)"
137
- on-save="save(repository, true)"
137
+ on-save="save(repository)"
138
138
  formatter="ansibleAuthFilter"
139
139
  formatter-options="repository"
140
140
  deletable="repository.ansible_collection_auth_exists"
@@ -165,7 +165,7 @@
165
165
  <dt translate>Upstream Authorization</dt>
166
166
  <dd bst-edit-custom="repository.upstream_auth_exists"
167
167
  readonly="denied('edit_products', product)"
168
- on-save="save(repository, true)"
168
+ on-save="save(repository)"
169
169
  formatter="upstreamPasswordFilter"
170
170
  formatter-options="repository"
171
171
  deletable="repository.upstream_auth_exists"
@@ -174,18 +174,17 @@
174
174
  <input id="upstream_username"
175
175
  name="upstream_username"
176
176
  type="name"
177
- autocomplete="off"
178
177
  ng-model="repository.upstream_username"/>
179
178
  <div translate>Upstream Password</div>
180
- <input id="upstream_password"
179
+ <input id="upstream_password"
181
180
  name="upstream_password"
182
- type="password"
183
- autocomplete="off"
181
+ type="{{ repository.upstream_password.length < 1 ? 'text': 'password' }}"
182
+ autocomplete="{{ (repository.upstream_username==null || repository.upstream_username=='') ? 'new-password' : '' }}"
184
183
  ng-model="repository.upstream_password"/>
185
184
  <div translate>Upstream Authentication Token</div>
186
185
  <input id="upstream_authentication_token"
187
186
  name="upstream_authentication_token"
188
- type="password"
187
+ type="{{ repository.upstream_authentication_token.length < 1 ? 'text': 'password' }}"
189
188
  autocomplete="off"
190
189
  ng-model="repository.upstream_authentication_token"/>
191
190
  </dd>
@@ -196,11 +196,13 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
196
196
 
197
197
  $scope.debURLPopover = $sce.trustAsHtml("For standard Debian repos, this is the folder that contains the \"dists/\" and the \"pool/\" subfolders.");
198
198
 
199
- $scope.distPopover = $sce.trustAsHtml("A \"distribution\" provides the path from the repository root to the \"Release\" file <br/>" +
200
- "you want to access. Each distribution in the list should use /etc/apt/sources.list<br/>" +
201
- "syntax. For most official Debian and Ubuntu repositories, the distribution is equal<br/>" +
202
- "to either the codename or the suite. When syncing a repo using flat repository format<br/>" +
203
- "specify exactly one distribution, which must end with a \"/\".");
199
+ $scope.distPopover = $sce.trustAsHtml("A \"distribution\" provides the path from the repository root to the \"Release\" file you want to access. Each<br/>" +
200
+ "distribution in the list should use /etc/apt/sources.list syntax. For most official Debian and Ubuntu repositories,<br/>" +
201
+ "the distribution is equal to either the codename or the suite. Upstream repos that do not contain a \"dists/\" <br>" +
202
+ "folder may be using the deprecated \"flat repository format\".<br>" +
203
+ "(See: https://wiki.debian.org/DebianRepository/Format#Flat_Repository_Format).<br>" +
204
+ "When syncing a repo using flat repository format specify exactly one distribution, which must end with a \"/\". When<br>" +
205
+ "syncing repositories that do not use \"flat repository format\" you must not use a trailing \"/\" for your distributions! <br>");
204
206
 
205
207
  $scope.componentPopover = $sce.trustAsHtml("Requesting a component that does not exist in the upstream repo, will result in <br/>" +
206
208
  "a Pulp warning, but no error. A typo can therefore result in missing content.");
@@ -224,7 +224,8 @@
224
224
  <input id="upstream_password"
225
225
  name="upstream_password"
226
226
  ng-model="repository.upstream_password"
227
- type="password"/>
227
+ type="password"
228
+ autocomplete="new-password"/>
228
229
  <p class="help-block" translate>
229
230
  Password of the upstream repository user for authentication. Leave empty if repository does not require authentication.
230
231
  </p>
@@ -37,7 +37,7 @@ angular.module('Bastion.products').controller('DiscoveryCreateController',
37
37
  'content_type': repo.contentType,
38
38
  'product_id': $scope.createRepoChoices.existingProductId,
39
39
  unprotected: $scope.createRepoChoices.unprotected,
40
- 'verify_ssl': $scope.createRepoChoices.verifySsl,
40
+ 'verify_ssl_on_sync': $scope.createRepoChoices.verifySsl,
41
41
  'upstream_username': $scope.createRepoChoices.upstreamUsername,
42
42
  'upstream_password': $scope.createRepoChoices.upstreamPassword
43
43
  };
@@ -53,7 +53,7 @@
53
53
  <div class="checkbox" ng-show="discovery.contentType === 'yum'">
54
54
  <label>
55
55
  <input type="checkbox" id="unprotected" ng-model="createRepoChoices.unprotected" ng-disabled="creating()"/>
56
- <span translate>Serve via HTTP</span>
56
+ <span translate>Unprotected</span>
57
57
  </label>
58
58
  </div>
59
59
 
@@ -43,6 +43,7 @@ angular.module('Bastion.products').config(['$stateProvider', function ($statePro
43
43
 
44
44
  $stateProvider.state("product-discovery", {
45
45
  url: '/products/discovery',
46
+ controller: 'DiscoveryController',
46
47
  templateUrl: 'products/discovery/views/discovery-base.html',
47
48
  permission: 'edit_products',
48
49
  redirectTo: 'product-discovery.scan'
@@ -1,5 +1,10 @@
1
- <div id="content-access-mode-banner" bst-alert="info" ng-show="simpleContentAccessEnabled">
1
+ <div id="content-access-mode-banner" bst-alert="info" ng-if="simpleContentAccessEnabled">
2
2
  <span translate>
3
3
  This organization has Simple Content Access enabled. Hosts are not required to have subscriptions attached to access repositories.
4
4
  </span>
5
5
  </div>
6
+ <div id="non-sca-banner" bst-alert="warning" ng-if="isManifestImported && !simpleContentAccessEnabled">
7
+ <span translate>
8
+ This organization is not using <a target="_blank" href="https://access.redhat.com/articles/simple-content-access">Simple Content Access.</a> Legacy subscription management is deprecated and will be removed in a future version.
9
+ </span>
10
+ </div>
@@ -68,11 +68,6 @@ module Katello
68
68
  }
69
69
 
70
70
  SETTINGS[:katello] = default_settings.deep_merge(SETTINGS[:katello] || {})
71
-
72
- if (Setting.table_exists? rescue(false))
73
- require_dependency File.expand_path('../../../app/models/setting/content.rb', __FILE__)
74
- Setting::Content.load_defaults
75
- end
76
71
  end
77
72
 
78
73
  initializer "katello.apipie" do
@@ -235,6 +230,7 @@ module Katello
235
230
 
236
231
  Katello::EventQueue.register_event(Katello::Events::ImportPool::EVENT_TYPE, Katello::Events::ImportPool)
237
232
  Katello::EventQueue.register_event(Katello::Events::AutoPublishCompositeView::EVENT_TYPE, Katello::Events::AutoPublishCompositeView)
233
+ Katello::EventQueue.register_event(Katello::Events::DeleteLatestContentViewVersion::EVENT_TYPE, Katello::Events::DeleteLatestContentViewVersion)
238
234
  Katello::EventQueue.register_event(Katello::Events::GenerateHostApplicability::EVENT_TYPE, Katello::Events::GenerateHostApplicability)
239
235
  Katello::EventQueue.register_event(Katello::Events::DeleteHostAgentQueue::EVENT_TYPE, Katello::Events::DeleteHostAgentQueue)
240
236
  Katello::EventQueue.register_event(Katello::Events::DeletePool::EVENT_TYPE, Katello::Events::DeletePool)
@@ -15,6 +15,7 @@ module Katello
15
15
  product_permissions
16
16
  subscription_permissions
17
17
  sync_plan_permissions
18
+ alternate_content_source_permissions
18
19
  user_permissions
19
20
  end
20
21
 
@@ -388,6 +389,33 @@ module Katello
388
389
  :finder_scope => :syncable
389
390
  end
390
391
 
392
+ def alternate_content_source_permissions
393
+ @plugin.permission :view_alternate_content_sources,
394
+ {
395
+ 'katello/api/v2/alternate_content_sources' => [:index, :show, :auto_complete_search]
396
+ },
397
+ :resource_type => 'Katello::AlternateContentSource',
398
+ :finder_scope => :readable
399
+ @plugin.permission :create_alternate_content_sources,
400
+ {
401
+ 'katello/api/v2/alternate_content_sources' => [:create]
402
+ },
403
+ :resource_type => 'Katello::AlternateContentSource',
404
+ :finder_scope => :editable
405
+ @plugin.permission :edit_alternate_content_sources,
406
+ {
407
+ 'katello/api/v2/alternate_content_sources' => [:update]
408
+ },
409
+ :resource_type => 'Katello::AlternateContentSource',
410
+ :finder_scope => :editable
411
+ @plugin.permission :destroy_alternate_content_sources,
412
+ {
413
+ 'katello/api/v2/alternate_content_sources' => [:destroy]
414
+ },
415
+ :resource_type => 'Katello::AlternateContentSource',
416
+ :finder_scope => :deletable
417
+ end
418
+
391
419
  def user_permissions
392
420
  @plugin.permission :my_organizations,
393
421
  {
@@ -399,15 +427,15 @@ module Katello
399
427
  def organization_permissions
400
428
  @plugin.permission :import_content,
401
429
  {
402
- 'katello/api/v2/content_imports' => [:library, :version, :index]
430
+ 'katello/api/v2/content_imports' => [:library, :version, :index, :repository]
403
431
  },
404
432
  :resource_type => 'Organization'
405
433
 
406
434
  @plugin.permission :export_content,
407
435
  {
408
- 'katello/api/v2/content_view_versions' => [:export],
409
- 'katello/api/v2/content_exports' => [:library, :version, :index],
410
- 'katello/api/v2/content_export_incrementals' => [:library, :version]
436
+ 'katello/api/v2/content_view_versions' => [:export, :repository],
437
+ 'katello/api/v2/content_exports' => [:library, :version, :index, :repository],
438
+ 'katello/api/v2/content_export_incrementals' => [:library, :version, :repository]
411
439
  },
412
440
  :resource_type => 'Organization'
413
441
  end