katello 4.4.1 → 4.5.0

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 (488) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/activation_key_edit.js +9 -2
  3. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +3 -0
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +5 -1
  5. data/app/controllers/katello/api/v2/alternate_content_sources_bulk_actions_controller.rb +44 -0
  6. data/app/controllers/katello/api/v2/alternate_content_sources_controller.rb +121 -0
  7. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +39 -3
  8. data/app/controllers/katello/api/v2/content_exports_controller.rb +19 -0
  9. data/app/controllers/katello/api/v2/content_imports_controller.rb +13 -16
  10. data/app/controllers/katello/api/v2/content_view_components_controller.rb +1 -1
  11. data/app/controllers/katello/api/v2/content_view_repositories_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +0 -12
  13. data/app/controllers/katello/api/v2/content_views_controller.rb +13 -0
  14. data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
  15. data/app/controllers/katello/api/v2/host_module_streams_controller.rb +8 -2
  16. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +25 -3
  17. data/app/controllers/katello/api/v2/organizations_controller.rb +4 -2
  18. data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +1 -1
  19. data/app/controllers/katello/api/v2/repositories_controller.rb +1 -1
  20. data/app/controllers/katello/api/v2/repository_sets_controller.rb +40 -7
  21. data/app/controllers/katello/api/v2/subscriptions_controller.rb +2 -2
  22. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +1 -1
  23. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +4 -0
  24. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +21 -3
  25. data/app/lib/actions/katello/alternate_content_source/create.rb +24 -0
  26. data/app/lib/actions/katello/alternate_content_source/destroy.rb +27 -0
  27. data/app/lib/actions/katello/alternate_content_source/refresh.rb +27 -0
  28. data/app/lib/actions/katello/alternate_content_source/update.rb +41 -0
  29. data/app/lib/actions/katello/cdn_configuration/update.rb +3 -3
  30. data/app/lib/actions/katello/content_view/destroy.rb +2 -1
  31. data/app/lib/actions/katello/content_view/incremental_updates.rb +7 -3
  32. data/app/lib/actions/katello/content_view/publish.rb +8 -10
  33. data/app/lib/actions/katello/content_view_version/auto_create_products.rb +4 -4
  34. data/app/lib/actions/katello/content_view_version/auto_create_redhat_repositories.rb +6 -4
  35. data/app/lib/actions/katello/content_view_version/auto_create_repositories.rb +6 -4
  36. data/app/lib/actions/katello/content_view_version/import.rb +25 -22
  37. data/app/lib/actions/katello/content_view_version/import_library.rb +0 -1
  38. data/app/lib/actions/katello/content_view_version/import_repository.rb +21 -0
  39. data/app/lib/actions/katello/content_view_version/incremental_update.rb +85 -93
  40. data/app/lib/actions/katello/content_view_version/reset_content_view_repositories_from_metadata.rb +2 -2
  41. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -1
  42. data/app/lib/actions/katello/product/content_create.rb +10 -8
  43. data/app/lib/actions/katello/repository/destroy.rb +36 -12
  44. data/app/lib/actions/katello/repository_set/disable_repository.rb +8 -3
  45. data/app/lib/actions/pulp3/alternate_content_source/create.rb +20 -0
  46. data/app/lib/actions/pulp3/alternate_content_source/create_remote.rb +20 -0
  47. data/app/lib/actions/pulp3/alternate_content_source/delete.rb +16 -0
  48. data/app/lib/actions/pulp3/alternate_content_source/delete_remote.rb +16 -0
  49. data/app/lib/actions/pulp3/alternate_content_source/refresh.rb +23 -0
  50. data/app/lib/actions/pulp3/alternate_content_source/update.rb +16 -0
  51. data/app/lib/actions/pulp3/alternate_content_source/update_remote.rb +17 -0
  52. data/app/lib/actions/pulp3/content_view_version/{import.rb → create_import.rb} +5 -5
  53. data/app/lib/actions/pulp3/content_view_version/create_importer.rb +4 -3
  54. data/app/lib/actions/pulp3/content_view_version/destroy_importer.rb +12 -1
  55. data/app/lib/actions/pulp3/orchestration/alternate_content_source/create.rb +16 -0
  56. data/app/lib/actions/pulp3/orchestration/alternate_content_source/delete.rb +23 -0
  57. data/app/lib/actions/pulp3/orchestration/alternate_content_source/refresh.rb +15 -0
  58. data/app/lib/actions/pulp3/orchestration/alternate_content_source/update.rb +16 -0
  59. data/app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb +1 -1
  60. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +51 -0
  61. data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +5 -2
  62. data/app/lib/actions/pulp3/repository/save_artifact.rb +1 -1
  63. data/app/lib/katello/api/v2/error_handling.rb +1 -0
  64. data/app/lib/katello/concerns/base_template_scope_extensions.rb +24 -11
  65. data/app/lib/katello/resources/cdn/katello_cdn.rb +3 -1
  66. data/app/lib/katello/util/errata.rb +2 -3
  67. data/app/lib/katello/validators/alternate_content_source_path_validator.rb +29 -0
  68. data/app/lib/katello/validators/content_default_http_proxy_setting_validator.rb +12 -0
  69. data/app/lib/katello/validators/content_view_environment_validator.rb +10 -5
  70. data/app/models/katello/alternate_content_source.rb +71 -0
  71. data/app/models/katello/authorization/alternate_content_source.rb +33 -0
  72. data/app/models/katello/authorization/repository.rb +5 -3
  73. data/app/models/katello/candlepin/repository_mapper.rb +13 -6
  74. data/app/models/katello/cdn_configuration.rb +15 -15
  75. data/app/models/katello/concerns/content_facet_host_extensions.rb +25 -0
  76. data/app/models/katello/concerns/host_managed_extensions.rb +7 -6
  77. data/app/models/katello/concerns/http_proxy_extensions.rb +14 -0
  78. data/app/models/katello/concerns/organization_extensions.rb +4 -2
  79. data/app/models/katello/concerns/setting_extensions.rb +14 -0
  80. data/app/models/katello/concerns/smart_proxy_extensions.rb +2 -1
  81. data/app/models/katello/content.rb +1 -0
  82. data/app/models/katello/content_credential.rb +6 -0
  83. data/app/models/katello/content_override.rb +7 -3
  84. data/app/models/katello/content_view.rb +33 -2
  85. data/app/models/katello/content_view_erratum_filter.rb +26 -12
  86. data/app/models/katello/content_view_filter.rb +4 -0
  87. data/app/models/katello/content_view_version.rb +12 -0
  88. data/app/models/katello/content_view_version_export_history.rb +3 -1
  89. data/app/models/katello/erratum.rb +9 -5
  90. data/app/models/katello/events/delete_latest_content_view_version.rb +40 -0
  91. data/app/models/katello/host/content_facet.rb +14 -0
  92. data/app/models/katello/host_available_module_stream.rb +12 -0
  93. data/app/models/katello/product_content.rb +1 -0
  94. data/app/models/katello/purpose_sla_status.rb +1 -1
  95. data/app/models/katello/purpose_status.rb +2 -2
  96. data/app/models/katello/repository.rb +7 -4
  97. data/app/models/katello/root_repository.rb +1 -1
  98. data/app/models/katello/smart_proxy_alternate_content_source.rb +8 -0
  99. data/app/models/katello/sync_plan.rb +1 -1
  100. data/app/presenters/katello/product_content_presenter.rb +15 -0
  101. data/app/services/katello/applicable_host_queue.rb +1 -1
  102. data/app/services/katello/product_content_finder.rb +12 -2
  103. data/app/services/katello/pulp3/alternate_content_source.rb +123 -0
  104. data/app/services/katello/pulp3/api/file.rb +8 -0
  105. data/app/services/katello/pulp3/api/yum.rb +8 -0
  106. data/app/services/katello/pulp3/content_view_version/export.rb +27 -5
  107. data/app/services/katello/pulp3/content_view_version/import.rb +104 -71
  108. data/app/services/katello/pulp3/content_view_version/import_export_common.rb +4 -4
  109. data/app/services/katello/pulp3/content_view_version/import_gpg_keys.rb +13 -11
  110. data/app/services/katello/pulp3/content_view_version/import_validator.rb +67 -72
  111. data/app/services/katello/pulp3/content_view_version/importable_products.rb +40 -24
  112. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +102 -38
  113. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +2 -2
  114. data/app/services/katello/pulp3/content_view_version/metadata_map.rb +117 -0
  115. data/app/services/katello/pulp3/pulp_content_unit.rb +6 -1
  116. data/app/services/katello/pulp3/repository/yum.rb +70 -12
  117. data/app/services/katello/pulp3/repository.rb +6 -62
  118. data/app/services/katello/pulp3/service_common.rb +66 -0
  119. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +4 -1
  120. data/app/services/katello/ui_notifications/content_view/delete_latest_version_failure.rb +22 -0
  121. data/app/views/foreman/job_templates/change_content_source.erb +1 -1
  122. data/app/views/foreman/job_templates/install_errata.erb +5 -5
  123. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +10 -8
  124. data/app/views/foreman/job_templates/install_group.erb +4 -4
  125. data/app/views/foreman/job_templates/install_package.erb +4 -4
  126. data/app/views/foreman/job_templates/install_packages_by_search_query.erb +3 -3
  127. data/app/views/foreman/job_templates/remove_group.erb +4 -4
  128. data/app/views/foreman/job_templates/remove_package.erb +4 -4
  129. data/app/views/foreman/job_templates/remove_packages_by_search_query.erb +3 -3
  130. data/app/views/foreman/job_templates/resolve_traces.erb +2 -2
  131. data/app/views/foreman/job_templates/restart_services.erb +3 -3
  132. data/app/views/foreman/job_templates/update_group.erb +4 -4
  133. data/app/views/foreman/job_templates/update_package.erb +4 -4
  134. data/app/views/foreman/job_templates/update_packages_by_search_query.erb +3 -3
  135. data/app/views/katello/api/v2/alternate_content_sources/base.json.rabl +24 -0
  136. data/app/views/katello/api/v2/alternate_content_sources/index.json.rabl +7 -0
  137. data/app/views/katello/api/v2/alternate_content_sources/show.json.rabl +3 -0
  138. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
  139. data/app/views/katello/api/v2/content_facet/show.json.rabl +12 -0
  140. data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +2 -3
  141. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +1 -1
  142. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  143. data/app/views/katello/api/v2/environments/show.json.rabl +2 -0
  144. data/app/views/katello/api/v2/errata/_counts.json.rabl +2 -2
  145. data/app/views/katello/api/v2/host_module_streams/base.json.rabl +2 -2
  146. data/app/views/katello/api/v2/hosts/host_collections.json.rabl +1 -1
  147. data/app/views/katello/api/v2/organizations/show.json.rabl +7 -1
  148. data/app/views/katello/api/v2/repositories/show.json.rabl +2 -1
  149. data/app/views/katello/api/v2/repository_sets/show.json.rabl +4 -0
  150. data/app/views/katello/sync_management/_repo.html.erb +8 -29
  151. data/config/routes/api/v2.rb +19 -0
  152. data/db/migrate/20150930183738_migrate_content_hosts.rb +0 -399
  153. data/db/migrate/20171025163149_remove_use_pulp_oauth_setting.rb +1 -1
  154. data/db/migrate/20171114150937_cleanup_installed_packages.rb +1 -1
  155. data/db/migrate/20180402160223_clean_up_force_post_sync_action_setting.rb +1 -1
  156. data/db/migrate/20211129200124_remove_dependency_solving_algorithm_setting.rb +1 -1
  157. data/db/migrate/20211220185935_clean_duplicate_content_units.rb +1 -1
  158. data/db/migrate/20220110223754_update_disconnected_settings.rb +5 -5
  159. data/db/migrate/20220117151612_add_alternate_content_sources.rb +48 -0
  160. data/db/migrate/20220124191056_add_type_to_cdn_configuration.rb +9 -4
  161. data/db/migrate/20220209203251_add_generated_for_to_content_views.rb +13 -0
  162. data/db/migrate/20220209205137_expand_sync_timeout_settings.rb +7 -7
  163. data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +12 -0
  164. data/db/migrate/20220303160220_remove_duplicate_errata.rb +1 -1
  165. data/db/migrate/20220404190836_delete_old_setting_data.rb +9 -0
  166. data/db/migrate/20220405220616_update_cdn_configuration_type.rb +11 -0
  167. data/db/migrate/20220419193414_content_settings_to_dsl_category.rb +5 -0
  168. data/db/migrate/20220428203334_add_last_refreshed_to_katello_alternate_content_sources.rb +5 -0
  169. data/db/seeds.d/110-content-view-autopublish.rb +13 -0
  170. data/db/seeds.d/150-module_job_templates.rb +1 -1
  171. data/engines/bastion/README.md +1 -0
  172. data/engines/bastion/app/assets/javascripts/bastion/components/bst-modal.directive.js +1 -0
  173. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -0
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +1 -1
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +4 -2
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +1 -1
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +11 -6
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +1 -0
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +1 -0
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +11 -3
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +1 -0
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +1 -1
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +1 -1
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +8 -0
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +4 -2
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +10 -0
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-deb-repositories.html +26 -0
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-debs.html +27 -0
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.controller.js +1 -0
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +22 -0
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +13 -7
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +63 -17
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +7 -8
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +10 -1
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +21 -3
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +8 -12
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +7 -5
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -1
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-create.controller.js +1 -1
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +1 -1
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +1 -0
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +6 -1
  204. data/lib/katello/engine.rb +1 -5
  205. data/lib/katello/permission_creator.rb +34 -4
  206. data/lib/katello/plugin.rb +377 -3
  207. data/lib/katello/tasks/refresh_alternate_content_sources.rake +15 -0
  208. data/lib/katello/tasks/reset.rake.bak +67 -0
  209. data/lib/katello/tasks/update_content_default_http_proxy.rake +2 -3
  210. data/lib/katello/version.rb +1 -1
  211. data/locale/action_names.rb +47 -41
  212. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  213. data/locale/bn/katello.po +820 -106
  214. data/locale/bn/katello.po.time_stamp +0 -0
  215. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  216. data/locale/cs/katello.po +818 -104
  217. data/locale/cs/katello.po.time_stamp +0 -0
  218. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  219. data/locale/de/katello.po +893 -179
  220. data/locale/de/katello.po.time_stamp +0 -0
  221. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  222. data/locale/en/katello.po +817 -103
  223. data/locale/en/katello.po.time_stamp +0 -0
  224. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  225. data/locale/es/katello.po +882 -168
  226. data/locale/es/katello.po.time_stamp +0 -0
  227. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  228. data/locale/fr/katello.po +1219 -505
  229. data/locale/fr/katello.po.time_stamp +0 -0
  230. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/gu/katello.po +826 -112
  232. data/locale/gu/katello.po.time_stamp +0 -0
  233. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  234. data/locale/hi/katello.po +826 -112
  235. data/locale/hi/katello.po.time_stamp +0 -0
  236. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/it/katello.po +863 -148
  238. data/locale/it/katello.po.time_stamp +0 -0
  239. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  240. data/locale/ja/katello.po +1216 -499
  241. data/locale/ja/katello.po.time_stamp +0 -0
  242. data/locale/katello.pot +3847 -2507
  243. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  244. data/locale/kn/katello.po +826 -112
  245. data/locale/kn/katello.po.time_stamp +0 -0
  246. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  247. data/locale/ko/katello.po +912 -198
  248. data/locale/ko/katello.po.time_stamp +0 -0
  249. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  250. data/locale/mr/katello.po +826 -112
  251. data/locale/mr/katello.po.time_stamp +0 -0
  252. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/or/katello.po +826 -112
  254. data/locale/or/katello.po.time_stamp +0 -0
  255. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  256. data/locale/pa/katello.po +826 -112
  257. data/locale/pa/katello.po.time_stamp +0 -0
  258. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/pt/katello.po +817 -103
  260. data/locale/pt/katello.po.time_stamp +0 -0
  261. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  262. data/locale/pt_BR/katello.po +879 -165
  263. data/locale/pt_BR/katello.po.time_stamp +0 -0
  264. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/ru/katello.po +927 -213
  266. data/locale/ru/katello.po.time_stamp +0 -0
  267. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  268. data/locale/ta/katello.po +820 -106
  269. data/locale/ta/katello.po.time_stamp +0 -0
  270. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  271. data/locale/te/katello.po +826 -112
  272. data/locale/te/katello.po.time_stamp +0 -0
  273. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  274. data/locale/zh_CN/katello.po +1202 -486
  275. data/locale/zh_CN/katello.po.time_stamp +0 -0
  276. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  277. data/locale/zh_TW/katello.po +856 -142
  278. data/locale/zh_TW/katello.po.time_stamp +0 -0
  279. data/webpack/components/Bookmark/index.js +22 -14
  280. data/webpack/components/EditableTextInput/EditableTextInput.js +20 -5
  281. data/webpack/components/Errata/index.js +38 -8
  282. data/webpack/components/Packages/index.js +1 -4
  283. data/webpack/components/Search/Search.js +22 -3
  284. data/webpack/components/SelectAllCheckbox/index.js +1 -0
  285. data/webpack/components/SelectableDropdown/SelectableDropdown.js +4 -2
  286. data/webpack/components/Table/EmptyStateMessage.js +21 -7
  287. data/webpack/components/Table/MainTable.js +29 -4
  288. data/webpack/components/Table/MainTable.scss +5 -1
  289. data/webpack/components/Table/TableHooks.js +65 -20
  290. data/webpack/components/Table/TableWrapper.js +9 -3
  291. data/webpack/components/Table/components/SortableColumnHeaders.js +19 -0
  292. data/webpack/components/Table/components/TranslatedPlural.js +57 -0
  293. data/webpack/components/TypeAhead/TypeAhead.js +12 -0
  294. data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.js +13 -11
  295. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +7 -2
  296. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +27 -0
  297. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +250 -0
  298. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +232 -0
  299. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewActions.js +19 -0
  300. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewConstants.js +2 -0
  301. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +131 -0
  302. data/webpack/components/extensions/HostDetails/Cards/{__tests__ → ContentViewDetailsCard/__tests__}/contentViewDetailsCard.test.js +22 -0
  303. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +443 -0
  304. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/envPaths.fixtures.json +320 -0
  305. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +57 -33
  306. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +3 -0
  307. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsActions.js +30 -0
  308. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +206 -0
  309. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsConstants.js +7 -0
  310. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +227 -0
  311. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsSelectors.js +18 -0
  312. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/availableHostCollections.fixtures.json +106 -0
  313. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsCard.test.js +118 -0
  314. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +235 -0
  315. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/removableHostCollections.fixtures.json +45 -0
  316. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +33 -8
  317. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +44 -0
  318. data/webpack/components/extensions/HostDetails/DetailsTabCards/RecentCommunicationCardExtensions.js +37 -0
  319. data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +107 -0
  320. data/webpack/components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions.js +38 -0
  321. data/webpack/components/extensions/HostDetails/HostDetailsActions.js +11 -0
  322. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +4 -0
  323. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +2 -0
  324. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/index.js +6 -1
  325. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +176 -72
  326. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/HostErrataActions.js +1 -7
  327. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsActions.js +1 -3
  328. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsConstants.js +28 -0
  329. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +522 -118
  330. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesActions.js +1 -7
  331. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +6 -4
  332. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +164 -58
  333. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +59 -49
  334. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
  335. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionHooks.js +85 -0
  336. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsActions.js +33 -54
  337. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsConstants.js +20 -0
  338. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +298 -107
  339. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +14 -7
  340. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/HostTracesActions.js +2 -1
  341. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +104 -0
  342. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +134 -57
  343. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +37 -32
  344. data/webpack/components/extensions/HostDetails/Tabs/{ModuleStreamsTab/__tests__/modules.fixtures.json → __tests__/moduleStreams.fixtures.json} +6 -3
  345. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +261 -0
  346. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +21 -15
  347. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +44 -1
  348. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySets.fixtures.json +4 -1
  349. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +105 -6
  350. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +25 -6
  351. data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +6 -0
  352. data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +18 -0
  353. data/webpack/containers/Application/config.js +5 -0
  354. data/webpack/global_index.js +32 -9
  355. data/webpack/global_test_setup.js +13 -0
  356. data/webpack/redux/actions/RedHatRepositories/enabled.js +2 -1
  357. data/webpack/redux/actions/RedHatRepositories/helpers.js +13 -8
  358. data/webpack/scenes/AlternateContentSources/ACSActions.js +65 -0
  359. data/webpack/scenes/AlternateContentSources/ACSConstants.js +18 -0
  360. data/webpack/scenes/AlternateContentSources/ACSIndexPage.js +23 -0
  361. data/webpack/scenes/AlternateContentSources/ACSSelectors.js +24 -0
  362. data/webpack/scenes/AlternateContentSources/Create/ACSCreateContext.js +4 -0
  363. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +160 -0
  364. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +79 -0
  365. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +199 -0
  366. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSReview.js +104 -0
  367. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +41 -0
  368. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +71 -0
  369. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +57 -0
  370. data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +77 -0
  371. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +149 -0
  372. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreateData.fixtures.json +3 -0
  373. data/webpack/scenes/AlternateContentSources/Create/__tests__/contentCredentials.fixtures.json +69 -0
  374. data/webpack/scenes/AlternateContentSources/Create/__tests__/smartProxy.fixtures.json +65 -0
  375. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +162 -0
  376. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsIndex.fixtures.json +91 -0
  377. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +67 -0
  378. data/webpack/scenes/AlternateContentSources/index.js +4 -0
  379. data/webpack/scenes/Content/Details/ContentRepositories.js +1 -0
  380. data/webpack/scenes/Content/Table/ContentTable.js +1 -0
  381. data/webpack/scenes/ContentCredentials/ContentCredentialSelectors.js +4 -1
  382. data/webpack/scenes/ContentViews/ContentViewsActions.js +6 -2
  383. data/webpack/scenes/ContentViews/ContentViewsConstants.js +11 -3
  384. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +2 -1
  385. data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +10 -1
  386. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +2 -1
  387. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +7 -5
  388. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionFinish.js +29 -21
  389. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +15 -8
  390. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +2 -2
  391. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +2 -2
  392. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +3 -1
  393. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +34 -8
  394. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +33 -29
  395. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +130 -79
  396. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +16 -2
  397. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +2 -1
  398. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +2 -1
  399. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +6 -1
  400. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +41 -21
  401. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +38 -20
  402. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +2 -0
  403. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +8 -1
  404. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +9 -1
  405. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +2 -1
  406. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +1 -0
  407. data/webpack/scenes/ContentViews/Details/Filters/Rules/ContainerTag/AddEditContainerTagRuleModal.js +27 -12
  408. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +39 -17
  409. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +27 -10
  410. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +46 -23
  411. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +3 -2
  412. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +5 -2
  413. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +161 -108
  414. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +7 -7
  415. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
  416. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +58 -0
  417. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteContextWrapper.js +45 -0
  418. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteHelpers.js +30 -0
  419. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +56 -0
  420. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +126 -0
  421. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/FinishBulkDelete.js +61 -0
  422. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +196 -0
  423. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +220 -0
  424. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +104 -0
  425. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteModal.test.js +122 -0
  426. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteVersions.fixtures.json +600 -0
  427. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentView.fixtures.json +1504 -0
  428. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentViewVersion.fixtures.json +936 -0
  429. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/environmentPaths.fixtures.json +261 -0
  430. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +163 -0
  431. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/bulkDeleteSteps.js +79 -0
  432. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +192 -167
  433. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +2 -5
  434. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionDeleteFinish.js +38 -53
  435. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +1 -1
  436. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +6 -12
  437. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +1 -0
  438. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +1 -0
  439. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +1 -0
  440. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.js +8 -20
  441. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +23 -13
  442. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +3 -0
  443. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.fixtures.json +4 -4
  444. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +0 -3
  445. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +4 -4
  446. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +12 -14
  447. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
  448. data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +96 -117
  449. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +13 -19
  450. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +9 -20
  451. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +165 -148
  452. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +2 -0
  453. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +14 -3
  454. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +4 -3
  455. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +10 -6
  456. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +6 -1
  457. data/webpack/scenes/ContentViews/components/TaskPresenter/TaskPresenter.js +40 -35
  458. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +1 -1
  459. data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +2 -2
  460. data/webpack/scenes/ContentViews/helpers.js +3 -0
  461. data/webpack/scenes/Hosts/ChangeContentSource/helpers.js +5 -0
  462. data/webpack/scenes/RedHatRepositories/RedHatRepositoriesPage.js +3 -3
  463. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +2 -1
  464. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/EnabledRepository.test.js +2 -0
  465. data/webpack/scenes/RedHatRepositories/components/Search.js +4 -4
  466. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +9 -2
  467. data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +1 -1
  468. data/webpack/scenes/SmartProxy/SmartProxyContentSelectors.js +10 -1
  469. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationConstants.js +3 -3
  470. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnTypeForm.js +2 -0
  471. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{AirGappedTypeForm.js → ExportSyncForm.js} +7 -6
  472. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{UpstreamServerTypeForm.js → NetworkSyncForm.js} +15 -7
  473. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{AirGappedTypeForm.test.js → ExportSyncForm.test.js} +4 -4
  474. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{UpstreamServerTypeForm.test.js → NetworkSyncForm.test.js} +8 -8
  475. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/index.js +11 -11
  476. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +1 -0
  477. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +8 -7
  478. data/webpack/scenes/Tasks/TaskActions.js +6 -0
  479. data/webpack/scenes/Tasks/TaskSelectors.js +11 -0
  480. data/webpack/scenes/Tasks/helpers.js +60 -5
  481. data/webpack/utils/helpers.js +2 -0
  482. metadata +183 -38
  483. data/app/models/setting/content.rb +0 -201
  484. data/db/seeds.d/107-enable_dynflow.rb +0 -8
  485. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard.js +0 -96
  486. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/__tests__/moduleStreamsTab.test.js +0 -108
  487. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerEmptyState.js +0 -42
  488. data/webpack/scenes/ContentViews/Details/DetailsContainer.js +0 -36
@@ -243,12 +243,16 @@ module Katello
243
243
  api.content_distribution_trees_api.list(options)
244
244
  end
245
245
 
246
- def add_filter_content(source_repo_ids, filters, filter_list_map)
246
+ def add_filter_content(source_repo_ids, filters, filter_list_map, additional_included_errata)
247
247
  filters.each do |filter|
248
248
  if filter.inclusion
249
249
  source_repo_ids.each do |repo_id|
250
250
  filter_list_map[:whitelist_ids] += filter.content_unit_pulp_ids(::Katello::Repository.find(repo_id))
251
251
  end
252
+ elsif filter.class == ContentViewErratumFilter
253
+ source_repo_ids.each do |repo_id|
254
+ filter_list_map[:blacklist_ids] += filter.content_unit_pulp_ids(::Katello::Repository.find(repo_id), additional_included_errata)
255
+ end
252
256
  else
253
257
  source_repo_ids.each do |repo_id|
254
258
  filter_list_map[:blacklist_ids] += filter.content_unit_pulp_ids(::Katello::Repository.find(repo_id))
@@ -297,6 +301,7 @@ module Katello
297
301
  filter_list_map
298
302
  end
299
303
 
304
+ # rubocop:disable Metrics/MethodLength
300
305
  def copy_content_from_mapping(repo_id_map, options = {})
301
306
  repo_id_map.each do |source_repo_ids, dest_repo_map|
302
307
  filters = [ContentViewErratumFilter, ContentViewPackageGroupFilter, ContentViewPackageFilter].collect do |filter_class|
@@ -305,8 +310,20 @@ module Katello
305
310
  modular_filters = ContentViewModuleStreamFilter.where(:id => dest_repo_map[:filter_ids])
306
311
  filters.flatten!.compact!
307
312
 
313
+ errata_filters = ContentViewErratumFilter.where(:id => dest_repo_map[:filter_ids])
314
+
315
+ # Only filter out RPMs & modules via an erratum filter if they're not included in other allowed errata.
316
+ # Begin this by calculating all the errata that should be copied.
317
+ # If there are exclude filters, send the errata to the relevant methods to ensure their contents aren't excluded.
318
+ additional_included_errata = []
319
+ all_excluded_errata = []
320
+ unless errata_filters.blacklist.empty?
321
+ all_included_errata, all_excluded_errata = filtered_errata(errata_filters, source_repo_ids)
322
+ additional_included_errata = all_included_errata - all_excluded_errata
323
+ end
324
+
308
325
  filter_list_map = { whitelist_ids: [], blacklist_ids: [] }
309
- filter_list_map = add_filter_content(source_repo_ids, filters, filter_list_map)
326
+ filter_list_map = add_filter_content(source_repo_ids, filters, filter_list_map, additional_included_errata)
310
327
  filter_list_map = add_un_modular_rpms(source_repo_ids, filters, filter_list_map)
311
328
  filter_list_map = add_modular_content(source_repo_ids, filters, modular_filters, filter_list_map)
312
329
 
@@ -320,7 +337,7 @@ module Katello
320
337
 
321
338
  if content_unit_hrefs.any?
322
339
  source_repo_ids.each do |source_repo_id|
323
- content_unit_hrefs += additional_content_hrefs(::Katello::Repository.find(source_repo_id), content_unit_hrefs)
340
+ content_unit_hrefs += additional_content_hrefs(::Katello::Repository.find(source_repo_id), content_unit_hrefs, all_excluded_errata)
324
341
  end
325
342
  end
326
343
 
@@ -331,29 +348,68 @@ module Katello
331
348
 
332
349
  multi_copy_units(repo_id_map, dependency_solving)
333
350
  end
351
+ # rubocop:enable Metrics/MethodLength
352
+
353
+ # Calculate errata that should be included and excluded.
354
+ # https://projects.theforeman.org/issues/34437
355
+ def filtered_errata(errata_filters, source_repository_ids)
356
+ if errata_filters.whitelist.empty?
357
+ all_included_errata = ::Katello::Erratum.joins("inner join katello_repository_errata on katello_errata.id = katello_repository_errata.erratum_id").
358
+ joins("inner join katello_repositories on katello_repositories.id = katello_repository_errata.repository_id").
359
+ where("katello_repositories.id in (?)", source_repository_ids)
360
+ else
361
+ all_included_errata = errata_filters.whitelist.collect do |filter|
362
+ ::Katello::Erratum.joins("inner join katello_repository_errata on katello_errata.id = katello_repository_errata.erratum_id").
363
+ where(filter.generate_clauses(nil)).where("katello_repository_errata.repository_id in (?)", source_repository_ids)
364
+ end
365
+ all_included_errata.flatten!
366
+ end
367
+ all_excluded_errata = errata_filters.blacklist.collect do |filter|
368
+ ::Katello::Erratum.joins("inner join katello_repository_errata on katello_errata.id = katello_repository_errata.erratum_id").
369
+ where(filter.generate_clauses(nil)).where("katello_repository_errata.repository_id in (?)", source_repository_ids)
370
+ end
371
+ all_excluded_errata.flatten!
372
+ return all_included_errata, all_excluded_errata
373
+ end
334
374
 
335
- def copy_content_for_source(source_repository, options = {}) # rubocop:disable Metrics/CyclomaticComplexity
336
- filters = [ContentViewErratumFilter, ContentViewPackageGroupFilter, ContentViewPackageFilter].collect do |filter_class|
375
+ # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity
376
+ def copy_content_for_source(source_repository, options = {})
377
+ package_filters = [ContentViewPackageGroupFilter, ContentViewPackageFilter].collect do |filter_class|
337
378
  filter_class.where(:id => options[:filter_ids])
338
379
  end
380
+ package_filters.flatten!.compact!
381
+
382
+ errata_filters = ContentViewErratumFilter.where(:id => options[:filter_ids])
339
383
 
340
- filters.flatten!.compact!
341
384
  whitelist_ids = []
342
385
  blacklist_ids = []
343
- filters.each do |filter|
386
+
387
+ # Only filter out RPMs & modules via an erratum filter if they're not included in other allowed errata.
388
+ # Begin this by calculating all the errata that should be copied.
389
+ # If there are exclude filters, send the errata to the relevant methods to ensure their contents aren't excluded.
390
+ additional_included_errata = []
391
+ all_excluded_errata = []
392
+ unless errata_filters.blacklist.empty?
393
+ all_included_errata, all_excluded_errata = filtered_errata(errata_filters, [source_repository.id])
394
+ additional_included_errata = all_included_errata - all_excluded_errata
395
+ end
396
+
397
+ (errata_filters + package_filters).each do |filter|
344
398
  if filter.inclusion
345
399
  whitelist_ids += filter.content_unit_pulp_ids(source_repository)
400
+ elsif filter.class == ContentViewErratumFilter
401
+ blacklist_ids += filter.content_unit_pulp_ids(source_repository, additional_included_errata)
346
402
  else
347
403
  blacklist_ids += filter.content_unit_pulp_ids(source_repository)
348
404
  end
349
405
  end
350
406
 
351
- whitelist_ids = source_repository.rpms.where(:modular => false).pluck(:pulp_id).sort if (whitelist_ids.empty? && filters.select { |filter| filter.inclusion }.empty?)
407
+ whitelist_ids = source_repository.rpms.where(:modular => false).pluck(:pulp_id).sort if (whitelist_ids.empty? && (errata_filters + package_filters).select { |filter| filter.inclusion }.empty?)
352
408
 
353
409
  modular_filters = ContentViewModuleStreamFilter.where(:id => options[:filter_ids])
354
410
  inclusion_modular_filters = modular_filters.select { |filter| filter.inclusion }
355
411
  exclusion_modular_filters = modular_filters - inclusion_modular_filters
356
- if inclusion_modular_filters.empty? && !(filters.any? { |filter| filter.class == ContentViewErratumFilter && filter.inclusion })
412
+ if inclusion_modular_filters.empty? && errata_filters.whitelist.empty?
357
413
  whitelist_ids += source_repository.rpms.where(:modular => true).pluck(:pulp_id).sort
358
414
  whitelist_ids += source_repository.module_streams.pluck(:pulp_id).sort
359
415
  end
@@ -362,10 +418,11 @@ module Katello
362
418
  content_unit_hrefs = whitelist_ids - blacklist_ids
363
419
  content_unit_hrefs += source_repository.srpms.pluck(:pulp_id)
364
420
  if content_unit_hrefs.any?
365
- content_unit_hrefs += additional_content_hrefs(source_repository, content_unit_hrefs)
421
+ content_unit_hrefs += additional_content_hrefs(source_repository, content_unit_hrefs, all_excluded_errata)
366
422
  end
367
423
  copy_units(source_repository, content_unit_hrefs.uniq, options[:remove_all])
368
424
  end
425
+ # rubocop:enable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity
369
426
 
370
427
  def modular_packages(source_repository, filters)
371
428
  list_ids = []
@@ -375,13 +432,14 @@ module Katello
375
432
  list_ids
376
433
  end
377
434
 
378
- def additional_content_hrefs(source_repository, content_unit_hrefs)
435
+ def additional_content_hrefs(source_repository, content_unit_hrefs, all_excluded_errata)
379
436
  repo_service = source_repository.backend_service(SmartProxy.pulp_primary)
380
437
  options = { :repository_version => source_repository.version_href }
381
438
 
382
439
  errata_to_include = filter_errata_by_pulp_href(source_repository.errata, content_unit_hrefs,
383
440
  source_repository.rpms.pluck(:filename) +
384
- source_repository.srpms.pluck(:filename))
441
+ source_repository.srpms.pluck(:filename)) -
442
+ all_excluded_errata
385
443
  content_unit_hrefs += errata_to_include.collect do |erratum|
386
444
  erratum.repository_errata.where(repository_id: source_repository.id).pluck(:erratum_pulp3_href)
387
445
  end
@@ -4,6 +4,7 @@ module Katello
4
4
  module Pulp3
5
5
  class Repository
6
6
  include Katello::Util::HttpProxy
7
+ include Katello::Pulp3::ServiceCommon
7
8
  attr_accessor :repo
8
9
  attr_accessor :smart_proxy
9
10
  delegate :root, to: :repo
@@ -49,13 +50,6 @@ module Katello
49
50
  @api ||= self.class.api(smart_proxy, repo.content_type)
50
51
  end
51
52
 
52
- def ignore_404_exception(*)
53
- yield
54
- rescue api.api_exception_class => e
55
- raise e unless e.code == 404
56
- nil
57
- end
58
-
59
53
  def published?
60
54
  !repo.publication_href.nil?
61
55
  end
@@ -74,56 +68,8 @@ module Katello
74
68
  end
75
69
 
76
70
  def create_remote
77
- if remote_options[:url]&.start_with?('uln')
78
- remote_file_data = api.class.remote_uln_class.new(remote_options)
79
- else
80
- remote_file_data = api.remote_class.new(remote_options)
81
- end
82
- reformat_api_exception do
83
- if remote_options[:url]&.start_with?('uln')
84
- response = api.remotes_uln_api.create(remote_file_data)
85
- else
86
- response = api.remotes_api.create(remote_file_data)
87
- end
88
- repo.update!(:remote_href => response.pulp_href)
89
- end
90
- end
91
-
92
- # When updating a repository, we need to update the remote, but this is
93
- # an async task. If some validation occurs, we won't know about it until
94
- # the task runs. Errors during a repository update task are very difficult to
95
- # handle once the task is in its run phase, so this creates a test remote
96
- # with a random name in order to validate the remote's configuration
97
- def create_test_remote
98
- test_remote_options = remote_options
99
- test_remote_options[:name] = test_remote_name
100
- if remote_options[:url]&.start_with?('uln')
101
- remote_file_data = api.class.remote_uln_class.new(test_remote_options)
102
- else
103
- remote_file_data = api.remote_class.new(test_remote_options)
104
- end
105
-
106
- reformat_api_exception do
107
- if remote_options[:url]&.start_with?('uln')
108
- response = api.remotes_uln_api.create(remote_file_data)
109
- else
110
- response = api.remotes_api.create(remote_file_data)
111
- end
112
- #delete is async, but if its not properly deleted, orphan cleanup will take care of it later
113
- delete_remote(response.pulp_href)
114
- end
115
- end
116
-
117
- def test_remote_name
118
- "test_remote_#{SecureRandom.uuid}"
119
- end
120
-
121
- def reformat_api_exception
122
- yield
123
- rescue api.client_module::ApiError => exception
124
- body = JSON.parse(exception.response_body) rescue body
125
- body = body.values.join(',') if body.respond_to?(:values)
126
- raise ::Katello::Errors::Pulp3Error, body
71
+ response = super
72
+ repo.update!(:remote_href => response.pulp_href)
127
73
  end
128
74
 
129
75
  def update_remote
@@ -436,10 +382,8 @@ module Katello
436
382
  }
437
383
  remote_options[:url] = root.url unless root.url.blank?
438
384
  remote_options[:download_concurrency] = root.download_concurrency unless root.download_concurrency.blank?
439
- if !root.upstream_username.blank? && !root.upstream_password.blank?
440
- remote_options.merge!(username: root.upstream_username,
441
- password: root.upstream_password)
442
- end
385
+ remote_options.merge!(username: root&.upstream_username,
386
+ password: root&.upstream_password)
443
387
  remote_options.merge!(ssl_remote_options)
444
388
  end
445
389
 
@@ -479,7 +423,7 @@ module Katello
479
423
  client_key: root.product.key,
480
424
  ca_cert: Katello::Repository.feed_ca_cert(root.url)
481
425
  }
482
- elsif root.redhat? && root.cdn_configuration.upstream_server?
426
+ elsif root.redhat? && root.cdn_configuration.network_sync?
483
427
  {
484
428
  client_cert: root.cdn_configuration.ssl_cert,
485
429
  client_key: root.cdn_configuration.ssl_key,
@@ -0,0 +1,66 @@
1
+ module Katello
2
+ module Pulp3
3
+ module ServiceCommon
4
+ def create_remote
5
+ response = nil
6
+ if remote_options[:url]&.start_with?('uln')
7
+ remote_file_data = api.class.remote_uln_class.new(remote_options)
8
+ else
9
+ remote_file_data = api.remote_class.new(remote_options)
10
+ end
11
+ reformat_api_exception do
12
+ if remote_options[:url]&.start_with?('uln')
13
+ response = api.remotes_uln_api.create(remote_file_data)
14
+ else
15
+ response = api.remotes_api.create(remote_file_data)
16
+ end
17
+ end
18
+ response
19
+ end
20
+
21
+ def test_remote_name
22
+ "test_remote_#{SecureRandom.uuid}"
23
+ end
24
+
25
+ # When updating a repository, we need to update the remote, but this is
26
+ # an async task. If some validation occurs, we won't know about it until
27
+ # the task runs. Errors during a repository update task are very difficult to
28
+ # handle once the task is in its run phase, so this creates a test remote
29
+ # with a random name in order to validate the remote's configuration
30
+ def create_test_remote
31
+ test_remote_options = remote_options
32
+ test_remote_options[:name] = test_remote_name
33
+ if remote_options[:url]&.start_with?('uln')
34
+ remote_file_data = api.class.remote_uln_class.new(test_remote_options)
35
+ else
36
+ remote_file_data = api.remote_class.new(test_remote_options)
37
+ end
38
+
39
+ reformat_api_exception do
40
+ if remote_options[:url]&.start_with?('uln')
41
+ response = api.remotes_uln_api.create(remote_file_data)
42
+ else
43
+ response = api.remotes_api.create(remote_file_data)
44
+ end
45
+ #delete is async, but if its not properly deleted, orphan cleanup will take care of it later
46
+ delete_remote(response.pulp_href)
47
+ end
48
+ end
49
+
50
+ def ignore_404_exception(*)
51
+ yield
52
+ rescue api.api_exception_class => e
53
+ raise e unless e.code == 404
54
+ nil
55
+ end
56
+
57
+ def reformat_api_exception
58
+ yield
59
+ rescue api.client_module::ApiError => exception
60
+ body = JSON.parse(exception.response_body) rescue body
61
+ body = body.values.join(',') if body.respond_to?(:values)
62
+ raise ::Katello::Errors::Pulp3Error, body
63
+ end
64
+ end
65
+ end
66
+ end
@@ -76,12 +76,15 @@ module Katello
76
76
  def delete_orphan_remotes
77
77
  tasks = []
78
78
  repo_names = Katello::Repository.pluck(:pulp_id)
79
+ acs_remotes = Katello::SmartProxyAlternateContentSource.pluck(:remote_href)
79
80
  pulp3_enabled_repo_types.each do |repo_type|
80
81
  api = repo_type.pulp3_api(smart_proxy)
81
82
  remotes = api.remotes_list
82
83
 
83
84
  remotes.each do |remote|
84
- tasks << api.delete_remote(remote.pulp_href) unless repo_names.include?(remote.name)
85
+ if !repo_names.include?(remote.name) && !acs_remotes.include?(remote.pulp_href)
86
+ tasks << api.delete_remote(remote.pulp_href)
87
+ end
85
88
  end
86
89
  end
87
90
  tasks
@@ -0,0 +1,22 @@
1
+ module Katello
2
+ module UINotifications
3
+ module ContentView
4
+ class DelelteLatestVersionFailure < ::UINotifications::Base
5
+ private
6
+
7
+ def create
8
+ Notification.create!(
9
+ subject: subject,
10
+ initiator: initiator,
11
+ audience: ::Notification::AUDIENCE_ADMIN,
12
+ notification_blueprint: blueprint
13
+ )
14
+ end
15
+
16
+ def blueprint
17
+ @blueprint ||= NotificationBlueprint.find_by(name: 'content_view_auto_publish_error')
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -3,7 +3,7 @@ kind: job_template
3
3
  name: Change content source
4
4
  job_category: Katello
5
5
  model: JobTemplate
6
- provider_type: SSH
6
+ provider_type: script
7
7
  description_format: Configure subscription manager to new content source
8
8
  feature: katello_change_content_source
9
9
  %>
@@ -1,23 +1,23 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Install Errata - Katello SSH Default
3
+ name: Install Errata - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Install errata %{errata}'
6
6
  feature: katello_errata_install
7
- provider_type: SSH
7
+ provider_type: script
8
8
  template_inputs:
9
9
  - name: errata
10
10
  description: A comma-separated list of errata to install
11
11
  input_type: user
12
12
  required: true
13
13
  foreign_input_sets:
14
- - template: Package Action - SSH Default
14
+ - template: Package Action - Script Default
15
15
  exclude: action,package
16
16
  %>
17
17
  <% if @host.operatingsystem.family == 'Suse' -%>
18
18
  <% advisories = input(:errata).split(',').join(' ') %>
19
- <%= render_template('Package Action - SSH Default', :action => 'install -n -t patch', :package => advisories) %>
19
+ <%= render_template('Package Action - Script Default', :action => 'install -n -t patch', :package => advisories) %>
20
20
  <% else %>
21
21
  <% advisories = input(:errata).split(',').map { |e| "--advisory=#{e}" }.join(' ') %>
22
- <%= render_template('Package Action - SSH Default', :action => 'update-minimal', :package => advisories) %>
22
+ <%= render_template('Package Action - Script Default', :action => 'update-minimal', :package => advisories) %>
23
23
  <% end %>
@@ -1,26 +1,28 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Install errata by search query - Katello SSH Default
3
+ name: Install errata by search query - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Install errata %{Errata search query}'
6
6
  feature: katello_errata_install_by_search
7
- provider_type: SSH
7
+ provider_type: script
8
8
  template_inputs:
9
9
  - name: Errata search query
10
10
  description: Filter criteria for errata to be installed.
11
11
  input_type: user
12
12
  required: false
13
13
  foreign_input_sets:
14
- - template: Package Action - SSH Default
14
+ - template: Package Action - Script Default
15
15
  exclude: action,package
16
16
  %>
17
17
 
18
+ <% advisory_ids = @host.advisory_ids(search: input("Errata search query")) %>
19
+ # RESOLVED_ERRATA_IDS=<%= advisory_ids.join(',') %>
20
+
18
21
  <% if @host.operatingsystem.family == 'Suse' -%>
19
- <% advisories = @host.advisory_ids(search: input("Errata search query")).join(' ') %>
20
- <%= render_template('Package Action - SSH Default', :action => 'install -n -t patch', :package => advisories) %>
22
+ <%= render_template('Package Action - Script Default', :action => 'install -n -t patch', :package => advisory_ids.join(' ')) %>
21
23
  <% else %>
22
- <% advisory_ids = @host.advisory_ids(search: input("Errata search query")) %>
24
+ <% raise "No errata matching given search query" if !input("Errata search query").blank? && advisory_ids.empty? %>
23
25
 
24
26
  <% advisories = advisory_ids.map { |e| "--advisory=#{e}" }.join(' ') %>
25
- <%= render_template('Package Action - SSH Default', :action => 'update-minimal', :package => advisories) %>
26
- <% end %>
27
+ <%= render_template('Package Action - Script Default', :action => 'update-minimal', :package => advisories) %>
28
+ <% end %>
@@ -1,13 +1,13 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Install Group - Katello SSH Default
3
+ name: Install Group - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Install package group(s) %{package}'
6
6
  feature: katello_group_install
7
- provider_type: SSH
7
+ provider_type: script
8
8
  foreign_input_sets:
9
- - template: Package Action - SSH Default
9
+ - template: Package Action - Script Default
10
10
  exclude: action
11
11
  %>
12
12
 
13
- <%= render_template('Package Action - SSH Default', :action => 'group install') %>
13
+ <%= render_template('Package Action - Script Default', :action => 'group install') %>
@@ -1,13 +1,13 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Install Package - Katello SSH Default
3
+ name: Install Package - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Install package(s) %{package}'
6
6
  feature: katello_package_install
7
- provider_type: SSH
7
+ provider_type: script
8
8
  foreign_input_sets:
9
- - template: Package Action - SSH Default
9
+ - template: Package Action - Script Default
10
10
  exclude: action
11
11
  %>
12
12
 
13
- <%= render_template('Package Action - SSH Default', :action => 'install') %>
13
+ <%= render_template('Package Action - Script Default', :action => 'install') %>
@@ -1,10 +1,10 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Install packages by search query - Katello SSH Default
3
+ name: Install packages by search query - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Install package(s) %{Package search query}'
6
6
  feature: katello_package_install_by_search
7
- provider_type: SSH
7
+ provider_type: script
8
8
  template_inputs:
9
9
  - name: Package search query
10
10
  description: Filter criteria for packages to be installed. IMPORTANT- If left blank, the job will attempt to install all possible packages.
@@ -16,4 +16,4 @@ template_inputs:
16
16
  search: input('Package search query')
17
17
  ) -%>
18
18
 
19
- <%= render_template('Package Action - SSH Default', :action => 'install', :package => package_names.join(' ')) %>
19
+ <%= render_template('Package Action - Script Default', :action => 'install', :package => package_names.join(' ')) %>
@@ -1,13 +1,13 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Remove Group - Katello SSH Default
3
+ name: Remove Group - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Remove package group(s) %{package}'
6
6
  feature: katello_group_remove
7
- provider_type: SSH
7
+ provider_type: script
8
8
  foreign_input_sets:
9
- - template: Package Action - SSH Default
9
+ - template: Package Action - Script Default
10
10
  exclude: action
11
11
  %>
12
12
 
13
- <%= render_template('Package Action - SSH Default', :action => 'group remove') %>
13
+ <%= render_template('Package Action - Script Default', :action => 'group remove') %>
@@ -1,13 +1,13 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Remove Package - Katello SSH Default
3
+ name: Remove Package - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Remove package(s) %{package}'
6
6
  feature: katello_package_remove
7
- provider_type: SSH
7
+ provider_type: script
8
8
  foreign_input_sets:
9
- - template: Package Action - SSH Default
9
+ - template: Package Action - Script Default
10
10
  exclude: action
11
11
  %>
12
12
 
13
- <%= render_template('Package Action - SSH Default', :action => 'remove') %>
13
+ <%= render_template('Package Action - Script Default', :action => 'remove') %>
@@ -1,10 +1,10 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Remove Packages by search query - Katello SSH Default
3
+ name: Remove Packages by search query - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Remove packages %{Packages search query}'
6
6
  feature: katello_packages_remove_by_search
7
- provider_type: SSH
7
+ provider_type: script
8
8
  template_inputs:
9
9
  - name: Packages search query
10
10
  description: Filter criteria for packages to be removed.
@@ -16,4 +16,4 @@ template_inputs:
16
16
  search: input('Packages search query')
17
17
  ) -%>
18
18
 
19
- <%= render_template('Package Action - SSH Default', :action => 'remove', :package => package_names.join(' ')) %>
19
+ <%= render_template('Package Action - Script Default', :action => 'remove', :package => package_names.join(' ')) %>
@@ -1,10 +1,10 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Resolve Traces - Katello SSH Default
3
+ name: Resolve Traces - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Resolve Traces'
6
6
  feature: katello_host_tracer_resolve
7
- provider_type: SSH
7
+ provider_type: script
8
8
  template_inputs:
9
9
  - name: Traces search query
10
10
  description: Search query to provide traces to resolve
@@ -1,10 +1,10 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Restart Services - Katello SSH Default
3
+ name: Restart Services - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Restart Services'
6
6
  feature: katello_service_restart
7
- provider_type: SSH
7
+ provider_type: script
8
8
  template_inputs:
9
9
  - name: helper
10
10
  description: A comma separated list of commands to run to restart services
@@ -19,5 +19,5 @@ reboot = commands.delete('reboot')
19
19
  <%= commands.join("\n") %>
20
20
  katello-tracer-upload
21
21
  <% if reboot -%>
22
- <%= render_template('Power Action - SSH Default', action: 'restart') %>
22
+ <%= render_template('Power Action - Script Default', action: 'restart') %>
23
23
  <% end %>
@@ -1,13 +1,13 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Update Group - Katello SSH Default
3
+ name: Update Group - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Install package group(s) %{package}'
6
6
  feature: katello_group_update
7
- provider_type: SSH
7
+ provider_type: script
8
8
  foreign_input_sets:
9
- - template: Package Action - SSH Default
9
+ - template: Package Action - Script Default
10
10
  exclude: action
11
11
  %>
12
12
 
13
- <%= render_template('Package Action - SSH Default', :action => 'group update') %>
13
+ <%= render_template('Package Action - Script Default', :action => 'group update') %>
@@ -1,13 +1,13 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Update Package - Katello SSH Default
3
+ name: Update Package - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Update package(s) %{package}'
6
6
  feature: katello_package_update
7
- provider_type: SSH
7
+ provider_type: script
8
8
  foreign_input_sets:
9
- - template: Package Action - SSH Default
9
+ - template: Package Action - Script Default
10
10
  exclude: action
11
11
  %>
12
12
 
13
- <%= render_template('Package Action - SSH Default', :action => 'update') %>
13
+ <%= render_template('Package Action - Script Default', :action => 'update') %>
@@ -1,10 +1,10 @@
1
1
  <%#
2
2
  kind: job_template
3
- name: Update Packages by search query - Katello SSH Default
3
+ name: Update Packages by search query - Katello Script Default
4
4
  job_category: Katello
5
5
  description_format: 'Update package(s) %{Packages search query}'
6
6
  feature: katello_packages_update_by_search
7
- provider_type: SSH
7
+ provider_type: script
8
8
  template_inputs:
9
9
  - name: Packages search query
10
10
  description: Filter criteria for packages to be updated.
@@ -16,4 +16,4 @@ template_inputs:
16
16
  search: input('Packages search query')
17
17
  ) -%>
18
18
 
19
- <%= render_template('Package Action - SSH Default', :action => 'update', :package => package_names.join(' ')) %>
19
+ <%= render_template('Package Action - Script Default', :action => 'update', :package => package_names.join(' ')) %>