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
@@ -1,403 +1,4 @@
1
1
  class MigrateContentHosts < ActiveRecord::Migration[4.2]
2
- HYPERVISOR_CLASS = 'Katello::Hypervisor'.freeze
3
-
4
- class Location < ApplicationRecord
5
- self.table_name = "taxonomies"
6
-
7
- def self.default_location
8
- location = MigrateContentHosts::Location.where(:katello_default => true).first
9
- location.becomes(MigrateContentHosts::Location)
10
- end
11
- end
12
-
13
- class Organization < ApplicationRecord
14
- self.table_name = "taxonomies"
15
-
16
- has_many :kt_environments, :class_name => "MigrateContentHosts::KTEnvironment",
17
- :dependent => :restrict_with_exception, :inverse_of => :organization
18
- end
19
-
20
- class SmartProxy < ApplicationRecord
21
- self.table_name = "smart_proxies"
22
-
23
- belongs_to :content_host, :class_name => "MigrateContentHosts::System", :inverse_of => :capsule
24
- end
25
-
26
- class KTEnvironment < ApplicationRecord
27
- self.table_name = "katello_environments"
28
-
29
- belongs_to :organization, :class_name => "MigrateContentHosts::Organization", :inverse_of => :kt_environments
30
-
31
- has_many :content_facets, :class_name => "MigrateContentHosts::ContentFacet", :foreign_key => :lifecycle_environment_id,
32
- :inverse_of => :lifecycle_environment, :dependent => :restrict_with_exception
33
- has_many :systems, :class_name => "MigrateContentHosts::System", :inverse_of => :environment,
34
- :dependent => :restrict_with_exception, :foreign_key => :environment_id
35
- end
36
-
37
- class ContentView < ApplicationRecord
38
- self.table_name = "katello_content_views"
39
-
40
- has_many :systems, :class_name => "MigrateContentHosts::System", :dependent => :restrict_with_exception
41
- has_many :content_facets, :class_name => "MigrateContentHosts::ContentFacet",
42
- :inverse_of => :content_view, :dependent => :restrict_with_exception
43
- end
44
-
45
- class Repository < ApplicationRecord
46
- self.table_name = "katello_repositories"
47
-
48
- has_many :content_facet_repositories, :class_name => "MigrateContentHosts::ContentFacetRepository", :dependent => :destroy
49
- has_many :content_facets, :through => :content_facet_repositories
50
-
51
- has_many :system_repositories, :class_name => "MigrateContentHosts::SystemRepository", :dependent => :destroy
52
- has_many :systems, :through => :system_repositories
53
- end
54
-
55
- class SystemRepository < ApplicationRecord
56
- self.table_name = "katello_system_repositories"
57
- belongs_to :system, :inverse_of => :system_repositories, :class_name => 'MigrateContentHosts::System'
58
- belongs_to :repository, :inverse_of => :system_repositories, :class_name => 'MigrateContentHosts::Repository'
59
- end
60
-
61
- class HostCollection < ApplicationRecord
62
- self.table_name = "katello_host_collection"
63
-
64
- has_many :system_host_collections, :class_name => "MigrateContentHosts::SystemHostCollection", :dependent => :destroy
65
- has_many :systems, :through => :system_host_collections, :class_name => "MigrateContentHosts::System"
66
- end
67
-
68
- class SystemHostCollections < ApplicationRecord
69
- self.table_name = "katello_system_host_collections"
70
-
71
- belongs_to :system, :inverse_of => :system_host_collections, :class_name => 'MigrateContentHosts::System'
72
- belongs_to :host_collection, :inverse_of => :system_host_collections
73
- end
74
-
75
- class Erratum < ApplicationRecord
76
- self.table_name = "katello_errata"
77
-
78
- has_many :systems_applicable, :through => :system_errata, :class_name => "MigrateContentHosts::System", :source => :system
79
- has_many :content_facet_errata, :class_name => "MigrateContentHosts::ContentFacetErratum", :source => :erratum
80
- end
81
-
82
- class SystemErratum < ApplicationRecord
83
- self.table_name = "katello_system_errata"
84
-
85
- belongs_to :system, :inverse_of => :system_errata, :class_name => 'MigrateContentHosts::System'
86
- belongs_to :erratum, :inverse_of => :system_errata, :class_name => 'MigrateContentHosts::Erratum'
87
- end
88
-
89
- class ActivationKey < ApplicationRecord
90
- self.table_name = "katello_activation_keys"
91
-
92
- has_many :system_activation_keys, :class_name => "MigrateContentHosts::SystemActivationKey", :dependent => :destroy
93
- has_many :subscription_facet_activation_keys, :class_name => "MigrateContentHosts::SubscriptionFacetActivationKey", :dependent => :destroy
94
- has_many :subscription_facets, :through => :subscription_facet_activation_keys
95
- end
96
-
97
- class SystemActivationKey < ApplicationRecord
98
- self.table_name = "katello_system_activation_keys"
99
-
100
- belongs_to :system, :inverse_of => :system_activation_keys
101
- belongs_to :activation_key, :inverse_of => :system_activation_keys
102
- end
103
-
104
- class Host < ApplicationRecord
105
- self.table_name = "hosts"
106
- self.inheritance_column = nil
107
-
108
- has_one :content_facet, :class_name => "MigrateContentHosts::ContentFacet", :dependent => :destroy
109
- has_one :subscription_facet, :class_name => "MigrateContentHosts::SubscriptionFacet", :dependent => :destroy
110
-
111
- belongs_to :organization, :class_name => "MigrateContentHosts::Organization"
112
- belongs_to :location, :class_name => "MigrateContentHosts::Location"
113
- end
114
-
115
- class System < ApplicationRecord
116
- self.table_name = "katello_systems"
117
- self.inheritance_column = nil
118
-
119
- def backend_data
120
- @data ||= ::Katello::Resources::Candlepin::Consumer.get(uuid)
121
- end
122
-
123
- def facts
124
- backend_data[:facts]
125
- end
126
-
127
- belongs_to :content_view, :inverse_of => :systems, :class_name => "MigrateContentHosts::ContentView"
128
- belongs_to :environment, :class_name => "MigrateContentHosts::KTEnvironment", :inverse_of => :systems
129
-
130
- has_many :system_activation_keys, :class_name => "MigrateContentHosts::SystemActivationKey", :dependent => :destroy
131
- has_many :activation_keys, :through => :system_activation_keys
132
- has_many :system_host_collections, :class_name => "MigrateContentHosts::SystemHostCollections", :dependent => :destroy
133
- has_many :host_collections, :through => :system_host_collections
134
- has_many :applicable_errata, :through => :system_errata, :class_name => "MigrateContentHosts::Erratum", :source => :erratum
135
- has_many :system_errata, :class_name => "MigrateContentHosts::SystemErratum", :dependent => :destroy, :inverse_of => :system
136
- has_many :bound_repositories, :through => :system_repositories, :class_name => "MigrateContentHosts::Repository", :source => :repository
137
- has_many :system_repositories, :class_name => "MigrateContentHosts::SystemRepository", :dependent => :destroy, :inverse_of => :system
138
-
139
- has_one :capsule, :class_name => "MigrateContentHosts::SmartProxy", :inverse_of => :content_host, :foreign_key => :content_host_id, :dependent => :nullify
140
- end
141
-
142
- class ContentFacet < ApplicationRecord
143
- self.table_name = "katello_content_facets"
144
-
145
- belongs_to :host, :inverse_of => :content_facet, :class_name => "MigrateContentHosts::Host"
146
- belongs_to :content_view, :inverse_of => :content_facets, :class_name => "MigrateContentHosts::ContentView"
147
- belongs_to :lifecycle_environment, :inverse_of => :content_facets, :class_name => "MigrateContentHosts::KTEnvironment"
148
-
149
- has_many :content_facet_repositories, :class_name => "MigrateContentHosts::ContentFacetRepository", :dependent => :destroy, :inverse_of => :content_facet
150
- has_many :bound_repositories, :through => :content_facet_repositories, :class_name => "MigrateContentHosts::Repository", :source => :repository
151
- has_many :applicable_errata, :through => :content_facet_errata, :class_name => "MigrateContentHosts::Erratum", :source => :erratum
152
- has_many :content_facet_errata, :class_name => "MigrateContentHosts::ContentFacetErratum", :dependent => :destroy, :inverse_of => :content_facet
153
- end
154
-
155
- class ContentFacetRepository < ApplicationRecord
156
- self.table_name = "katello_content_facet_repositories"
157
-
158
- belongs_to :content_facet, :inverse_of => :content_facet_repositories, :class_name => 'MigrateContentHosts::ContentFacet'
159
- belongs_to :repository, :inverse_of => :content_facet_repositories, :class_name => 'MigrateContentHosts::Repository'
160
- end
161
-
162
- class ContentFacetErratum < ApplicationRecord
163
- self.table_name = "katello_content_facet_errata"
164
-
165
- belongs_to :content_facet, :inverse_of => :content_facet_errata, :class_name => 'MigrateContentHosts::ContentFacet'
166
- belongs_to :erratum, :inverse_of => :content_facet_errata, :class_name => 'MigrateContentHosts::Erratum'
167
- end
168
-
169
- class SubscriptionFacet < ApplicationRecord
170
- self.table_name = "katello_subscription_facets"
171
-
172
- belongs_to :host, :inverse_of => :subscription_facet, :class_name => "MigrateContentHosts::Host"
173
- has_many :activation_keys, :through => :subscription_facet_activation_keys, :class_name => "MigrateContentHosts::ActivationKey"
174
- has_many :subscription_facet_activation_keys, :class_name => "MigrateContentHosts::SubscriptionFacetActivationKey", :dependent => :destroy, :inverse_of => :subscription_facet
175
- end
176
-
177
- class SubscriptionFacetActivationKey < ApplicationRecord
178
- self.table_name = "katello_subscription_facet_activation_keys"
179
-
180
- belongs_to :subscription_facet, :inverse_of => :subscription_facet_activation_keys, :class_name => 'MigrateContentHosts::SubscriptionFacet'
181
- belongs_to :activation_key, :inverse_of => :subscription_facet_activation_keys, :class_name => 'MigrateContentHosts::ActivationKey'
182
- end
183
-
184
- def logger
185
- Rails.logger
186
- end
187
-
188
- def create_content_facet(host, system, include_env_and_view_only = false)
189
- logger.info("Creating content facet for host #{host.name}.")
190
- content_facet = host.content_facet = MigrateContentHosts::ContentFacet.new(:content_view => system.content_view,
191
- :lifecycle_environment => system.environment)
192
- unless include_env_and_view_only
193
- content_facet.uuid = system.uuid
194
- content_facet.bound_repositories = system.bound_repositories
195
- content_facet.applicable_errata = system.applicable_errata
196
- end
197
- content_facet.save!
198
- end
199
-
200
- def create_subscription_facet(host, system)
201
- logger.info("Creating subscription facet for host #{host.name}.")
202
- subscription_facet = host.subscription_facet = MigrateContentHosts::SubscriptionFacet.new
203
- subscription_facet.activation_keys = system.activation_keys.uniq
204
- subscription_facet.uuid = system.uuid
205
- subscription_facet.save!
206
- end
207
-
208
- def get_systems_with_facts(systems)
209
- systems_to_remove = []
210
- systems = systems.to_a
211
-
212
- systems.each do |system|
213
- facts = system.facts
214
- unless facts
215
- systems_to_remove.push(system)
216
- end
217
- rescue RestClient::Exception
218
- systems_to_remove.push(system)
219
- end
220
-
221
- systems_to_remove.each do |system|
222
- logger.info("Content Host #{system.uuid} doesn't have candlepin information, unregistering.")
223
- if (system_proxy = SmartProxy.find_by_content_host_id(system.id))
224
- system_proxy.content_host_id = nil
225
- system_proxy.save
226
- end
227
- systems.delete(system)
228
- unregister_system(system)
229
- end
230
-
231
- systems
232
- end
233
-
234
- def group_systems_by_hostname(systems)
235
- system_hostnames = {}
236
-
237
- systems.each do |system|
238
- hostname = system.facts['network.hostname']
239
-
240
- if system_hostnames[hostname]
241
- system_hostnames[hostname].push(system)
242
- else
243
- system_hostnames[hostname] = [system]
244
- end
245
- end
246
-
247
- system_hostnames
248
- end
249
-
250
- def ensure_one_system_per_hostname(systems)
251
- # ensure only one system exists per hostname and unregister all except the last registered
252
- systems = get_systems_with_facts(systems)
253
- system_hostnames = group_systems_by_hostname(systems)
254
-
255
- system_hostnames.each do |hostname, duplicate_systems|
256
- if duplicate_systems.count > 1
257
- logger.warn("Multiple content hosts with the hostname #{hostname} found, unregistering all except last registered.")
258
- unregister_all_but_last_system(duplicate_systems)
259
- end
260
- end
261
- end
262
-
263
- def unregister_system(system)
264
- logger.warn("Unregistering content host with UUID: #{system.uuid}")
265
-
266
- begin
267
- logger.info("Removing Candlepin consumer #{system.uuid}")
268
- Katello::Resources::Candlepin::Consumer.destroy(system.uuid)
269
- rescue RestClient::Exception => e
270
- logger.warn("Exception when destroying candlepin consumer #{system.uuid}:#{e.inspect}")
271
- end
272
-
273
- begin
274
- logger.info("Removing Pulp consumer #{system.uuid}")
275
- Katello.pulp_server.extensions.consumer.delete(system.uuid)
276
- rescue RestClient::ResourceNotFound
277
- logger.warn("Pulp consumer not found for consumer #{system.uuid} proceeding.")
278
- #do nothing
279
- rescue RestClient::Exception => e
280
- logger.warn("Exception when destroying pulp consumer #{system.uuid}:#{e.inspect}")
281
- end
282
-
283
- logger.info("Removing system #{system.uuid}")
284
- system.destroy
285
- end
286
-
287
- def unregister_all_but_last_system(systems)
288
- systems_by_created_date = systems.sort_by(&:created_at)
289
- system = systems_by_created_date.pop
290
-
291
- systems_by_created_date.each do |system_to_remove|
292
- unregister_system(system_to_remove)
293
- end
294
-
295
- system
296
- end
297
-
298
- def handle_hypervisors
299
- MigrateContentHosts::System.where(:type => HYPERVISOR_CLASS).find_each do |hypervisor|
300
- org = hypervisor.environment.organization
301
- name = "virt-who-#{hypervisor.name}-#{org.id}"
302
-
303
- host = ::Host.find_by(:name => name)
304
- if host.nil?
305
- host = MigrateContentHosts::Host.create!(:name => name, :organization => org.becomes(MigrateContentHosts::Organization), :managed => false,
306
- :type => "Host::Managed", :location => MigrateContentHosts::Location.default_location)
307
- elsif host.organization != org
308
- logger.warn("Found host with name #{name} but it's in org #{host.organization.name} instead of #{org.name}.")
309
- unregister_system(hypervisor)
310
- next
311
- end
312
- hypervisor.host_id = host.id
313
- hypervisor.save!
314
- create_subscription_facet(host, hypervisor) unless host.subscription_facet
315
- update_hypervisor_consumer(hypervisor)
316
- end
317
- end
318
-
319
- def update_hypervisor_consumer(hypervisor)
320
- org = hypervisor.environment.organization
321
- hypervisor.content_view = org.default_content_view.becomes(MigrateContentHosts::ContentView)
322
- hypervisor.environment = org.library.becomes(MigrateContentHosts::KTEnvironment)
323
- hypervisor.save!
324
-
325
- candlepin_environment_id = org.default_content_view.content_view_environments.first.cp_id
326
- ::Katello::Resources::Candlepin::Consumer.update(hypervisor.uuid, 'environment' => {'id' => candlepin_environment_id})
327
- end
328
-
329
- # rubocop:disable Metrics/MethodLength
330
- # rubocop:disable Metrics/AbcSize
331
2
  def up
332
- unless User.unscoped.where(:login => User::ANONYMOUS_API_ADMIN).exists?
333
- logger.warn("Foreman anonymous admin does not exist, skipping content host migration.")
334
- return
335
- end
336
-
337
- User.current = User.anonymous_api_admin
338
- system_count = ::MigrateContentHosts::System.all.count
339
-
340
- return true if system_count == 0
341
-
342
- ping = ::Katello::Ping.ping
343
- if ping[:status] != ::Katello::Ping::OK_RETURN_CODE
344
- fail _("Some backend services are not running: %s") % ping.inspect
345
- end
346
-
347
- ::MigrateContentHosts::System.where(:uuid => nil).destroy_all
348
-
349
- ensure_one_system_per_hostname(MigrateContentHosts::System.where("type != '#{HYPERVISOR_CLASS}'").all)
350
-
351
- systems = get_systems_with_facts(MigrateContentHosts::System.where("type != '#{HYPERVISOR_CLASS}'").all)
352
-
353
- systems.each do |system|
354
- system.environment.organization = system.environment.organization.becomes(MigrateContentHosts::Organization)
355
- hostname = system.facts['network.hostname']
356
-
357
- logger.info("Processing content host #{system.uuid} #{hostname}")
358
-
359
- if hostname.nil?
360
- logger.warn("Content host #{system.uuid} does not have a hostname, removing.")
361
- unregister_system(system)
362
- next
363
- end
364
-
365
- MigrateContentHosts::Host.reset_column_information
366
- hosts = MigrateContentHosts::Host.where(:name => hostname)
367
- if hosts.empty? # no host exists
368
- logger.info("No host exists with hostname #{hostname}, creating new host.")
369
- host = MigrateContentHosts::Host.new(:name => system.facts['network.hostname'], :organization => system.environment.organization,
370
- :type => "Host::Managed", :location => MigrateContentHosts::Location.default_location, :managed => false)
371
- host.save!
372
-
373
- create_content_facet(host, system)
374
- create_subscription_facet(host, system)
375
-
376
- elsif hosts.where(:organization_id => system.environment.organization.id).empty? # host is not in the correct org
377
- if hosts[0].organization
378
- logger.warn("Found host with hostname #{hostname} but it's in org #{hosts[0].organization.name} instead of #{system.environment.organization.name}.")
379
- else
380
- logger.warn("Found host with hostname #{hostname} but it is not in an org, and should be in #{system.environment.organization.name}.")
381
- end
382
- host = hosts.first
383
-
384
- create_content_facet(host, system, true) unless host.content_facet
385
- unregister_system(system)
386
-
387
- else #host exists in the correct org
388
- logger.info("Found host with hostname #{hostname}.")
389
- host = hosts.first
390
-
391
- create_content_facet(host, system) unless host.content_facet
392
- create_subscription_facet(host, system) unless host.subscription_facet
393
- end
394
-
395
- unless system.destroyed? # if the system was unregistered, it will no longer exist
396
- system.host_id = host.id
397
- system.save!
398
- end
399
- end
400
-
401
- handle_hypervisors
402
3
  end
403
4
  end
@@ -1,5 +1,5 @@
1
1
  class RemoveUsePulpOauthSetting < ActiveRecord::Migration[4.2]
2
2
  def up
3
- Setting.where(:name => 'use_pulp_oauth', :category => 'Setting::Content').delete_all
3
+ Setting.where(:name => 'use_pulp_oauth').delete_all
4
4
  end
5
5
  end
@@ -43,7 +43,7 @@ class CleanupInstalledPackages < ActiveRecord::Migration[4.2]
43
43
  # Now do new things
44
44
  add_index :katello_installed_packages, [:nvra], :unique => true
45
45
  add_index :katello_host_installed_packages, [:host_id, :installed_package_id], :unique => true, :name => :katello_host_installed_packages_h_id_ip_id
46
- Setting.where(:name => 'bulk_query_installed_packages', :category => 'Setting::Content').delete_all
46
+ Setting.where(:name => 'bulk_query_installed_packages').delete_all
47
47
  end
48
48
 
49
49
  def down
@@ -1,5 +1,5 @@
1
1
  class CleanUpForcePostSyncActionSetting < ActiveRecord::Migration[5.1]
2
2
  def change
3
- Setting.where(:name => 'force_post_sync_actions', :category => 'Setting::Content').delete_all
3
+ Setting.where(:name => 'force_post_sync_actions').delete_all
4
4
  end
5
5
  end
@@ -1,5 +1,5 @@
1
1
  class RemoveDependencySolvingAlgorithmSetting < ActiveRecord::Migration[6.0]
2
2
  def change
3
- Setting.where(:name => 'dependency_solving_algorithm', :category => 'Setting::Content').delete_all
3
+ Setting.where(:name => 'dependency_solving_algorithm').delete_all
4
4
  end
5
5
  end
@@ -1,6 +1,6 @@
1
1
  class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
2
2
  def find_duplicate_groups(model, fields)
3
- model.having("count(*) > 1").group(*fields).pluck("string_agg(id::TEXT, ',') ").map do |ids|
3
+ model.having("count(*) > 1").group(*fields).pluck(Arel.sql("string_agg(id::TEXT, ',')")).map do |ids|
4
4
  ids.split(',').map(&:to_i)
5
5
  end
6
6
  end
@@ -20,7 +20,7 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
20
20
  to_delete = []
21
21
  to_update = []
22
22
  duplicate_models.each do |duplicate|
23
- query = { new_id_field => new_id }
23
+ query = {new_id_field => new_id}
24
24
  unique_fields.each do |field|
25
25
  query[field] = duplicate.send(field)
26
26
  end
@@ -52,25 +52,28 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
52
52
  def up
53
53
  handle_null_pulp_ids
54
54
  add_foreign_keys
55
- delete_deprecated_models
56
55
 
57
56
  handle_duplicate(Katello::ModuleStream,
58
57
  'module_stream_id',
59
58
  [:pulp_id],
60
- associated_models: { Katello::RepositoryModuleStream => :repository_id },
59
+ associated_models: {Katello::RepositoryModuleStream => :repository_id},
61
60
  child_models: [Katello::ContentViewModuleStreamFilterRule,
62
61
  Katello::ContentFacetApplicableModuleStream,
63
62
  Katello::ModuleProfile,
64
63
  Katello::ModuleStreamArtifact,
65
64
  Katello::ModuleStreamErratumPackage,
66
65
  Katello::ModuleStreamRpm])
67
-
68
66
  add_index :katello_module_streams, :pulp_id, :unique => true
67
+
68
+ handle_duplicate(Katello::ModuleProfile, 'module_profile_id', [:module_stream_id, :name],
69
+ child_models: [Katello::ModuleProfileRpm])
69
70
  add_index :katello_module_profiles, [:module_stream_id, :name], :unique => true
71
+
72
+ handle_duplicate(Katello::ModuleProfileRpm, 'module_profile_rpm_id', [:module_profile_id, :name])
70
73
  add_index :katello_module_profile_rpms, [:module_profile_id, :name], :unique => true
71
74
 
72
75
  handle_duplicate(Katello::AnsibleTag, 'ansible_tag_id', [:name],
73
- associated_models: { Katello::AnsibleCollectionTag => :ansible_collection_id })
76
+ associated_models: {Katello::AnsibleCollectionTag => :ansible_collection_id})
74
77
  add_index :katello_ansible_tags, [:name], :unique => true
75
78
 
76
79
  handle_duplicate(Katello::AnsibleCollectionTag, 'ansible_collection_tag_id', [:ansible_collection_id, :ansible_tag_id])
@@ -80,7 +83,7 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
80
83
  handle_duplicate(Katello::GenericContentUnit,
81
84
  'generic_content_unit_id',
82
85
  [:pulp_id],
83
- associated_models: { Katello::RepositoryGenericContentUnit => :repository_id })
86
+ associated_models: {Katello::RepositoryGenericContentUnit => :repository_id})
84
87
  add_index :katello_generic_content_units, :pulp_id, :unique => true
85
88
 
86
89
  handle_duplicate(Katello::DockerManifestList, 'docker_manifest_list_id', [:pulp_id],
@@ -109,11 +112,6 @@ class CleanDuplicateContentUnits < ActiveRecord::Migration[6.0]
109
112
  change_column :katello_docker_manifests, :pulp_id, :string, :null => false
110
113
  end
111
114
 
112
- def delete_deprecated_models
113
- Katello::ModuleProfileRpm.delete_all
114
- Katello::ModuleProfile.delete_all
115
- end
116
-
117
115
  def add_foreign_keys
118
116
  Katello::DockerManifestListManifest.where.not(docker_manifest_list_id: Katello::DockerManifestList.pluck(:id)).delete_all
119
117
  add_foreign_key :katello_docker_manifest_list_manifests, :katello_docker_manifest_lists, column: :docker_manifest_list_id
@@ -1,20 +1,20 @@
1
1
  class UpdateDisconnectedSettings < ActiveRecord::Migration[6.0]
2
2
  def up
3
- setting_disconnected = Setting.find_by(name: 'content_disconnected', category: 'Setting::Content')
4
- setting = Setting.find_by(name: 'subscription_connection_enabled', category: 'Setting::Content')
3
+ setting_disconnected = Setting.find_by(name: 'content_disconnected')
4
+ setting = Setting.find_by(name: 'subscription_connection_enabled')
5
5
 
6
6
  setting&.update!(
7
7
  value: !setting_disconnected&.value
8
8
  )
9
- Setting.where(:name => 'content_disconnected', :category => 'Setting::Content').delete_all
9
+ Setting.where(:name => 'content_disconnected').delete_all
10
10
  end
11
11
 
12
12
  def down
13
13
  remove_column :katello_cdn_configurations, :airgapped
14
- setting_disconnected = Setting.find_by(name: 'subscription_connection_enabled', category: 'Setting::Content')
14
+ setting_disconnected = Setting.find_by(name: 'subscription_connection_enabled')
15
15
  Setting.set('content_disconnected', N_("A server operating in disconnected mode does not communicate with the Red Hat CDN."),
16
16
  !setting_disconnected.value, N_('Disconnected mode'))
17
17
 
18
- Setting.where(:name => 'subscription_connection_enabled', :category => 'Setting::Content').delete_all
18
+ Setting.where(:name => 'subscription_connection_enabled').delete_all
19
19
  end
20
20
  end
@@ -0,0 +1,48 @@
1
+ # rubocop:disable Metrics/MethodLength
2
+ class AddAlternateContentSources < ActiveRecord::Migration[6.0]
3
+ def up
4
+ create_table :katello_alternate_content_sources do |t|
5
+ t.string :name, limit: 255, null: false
6
+ t.string :label, limit: 255, null: false
7
+ t.text :description
8
+ t.integer :ssl_ca_cert_id
9
+ t.integer :ssl_client_cert_id
10
+ t.integer :ssl_client_key_id
11
+ t.integer :http_proxy_id
12
+ t.string :base_url, limit: 1024
13
+ t.string :subpaths, array: true, default: []
14
+ t.string :content_type, limit: 255, default: 'yum'
15
+ t.string :alternate_content_source_type, limit: 255, default: 'custom', null: false
16
+ t.boolean :verify_ssl, default: true
17
+ t.string 'upstream_username', limit: 255
18
+ t.string 'upstream_password', limit: 1024
19
+ end
20
+
21
+ add_index :katello_alternate_content_sources, :name, :unique => true
22
+ add_index :katello_alternate_content_sources, :label, :unique => true
23
+
24
+ add_foreign_key :katello_alternate_content_sources, :katello_content_credentials, :name => :katello_alternate_content_sources_ssl_ca_cert_id, :column => :ssl_ca_cert_id
25
+ add_foreign_key :katello_alternate_content_sources, :katello_content_credentials, :name => :katello_alternate_content_sources_ssl_client_cert_id, :column => :ssl_client_cert_id
26
+ add_foreign_key :katello_alternate_content_sources, :katello_content_credentials, :name => :katello_alternate_content_sources_ssl_client_key_id, :column => :ssl_client_key_id
27
+ add_foreign_key :katello_alternate_content_sources, :http_proxies, :name => :katello_alternate_content_sources_http_proxy_id, :column => :http_proxy_id
28
+
29
+ create_table :katello_smart_proxy_alternate_content_sources do |t|
30
+ t.references :alternate_content_source, :null => false, index: false
31
+ t.references :smart_proxy, :null => false, index: false
32
+ t.string :remote_href
33
+ t.string :alternate_content_source_href
34
+ t.timestamps
35
+ end
36
+
37
+ add_index :katello_smart_proxy_alternate_content_sources, [:alternate_content_source_id, :smart_proxy_id], :unique => true,
38
+ :name => :index_katello_smart_proxy_acss_on_acs_id_and_smart_proxy_id
39
+
40
+ add_foreign_key :katello_smart_proxy_alternate_content_sources, :katello_alternate_content_sources, :column => :alternate_content_source_id
41
+ add_foreign_key :katello_smart_proxy_alternate_content_sources, :smart_proxies, :column => :smart_proxy_id
42
+ end
43
+
44
+ def down
45
+ drop_table :katello_smart_proxy_alternate_content_sources
46
+ drop_table :katello_alternate_content_sources
47
+ end
48
+ end
@@ -1,15 +1,20 @@
1
1
  class AddTypeToCdnConfiguration < ActiveRecord::Migration[6.0]
2
+ class FakeCdnConfiguration < Katello::Model
3
+ self.table_name = 'katello_cdn_configurations'
4
+ self.inheritance_column = nil
5
+ end
6
+
2
7
  def change
3
8
  add_index :katello_cdn_configurations, :organization_id, unique: true
4
- add_column :katello_cdn_configurations, :type, :string, default: ::Katello::CdnConfiguration::CDN_TYPE
9
+ add_column :katello_cdn_configurations, :type, :string, default: 'redhat_cdn'
5
10
 
6
- ::Katello::CdnConfiguration.reset_column_information
7
- ::Katello::CdnConfiguration.all.each do |config|
11
+ FakeCdnConfiguration.reset_column_information
12
+ FakeCdnConfiguration.all.each do |config|
8
13
  unless config.username.blank? ||
9
14
  config.password.blank? ||
10
15
  config.upstream_organization_label.blank? ||
11
16
  config.ssl_ca_credential_id.blank?
12
- config.update!(type: ::Katello::CdnConfiguration::UPSTREAM_SERVER_TYPE)
17
+ config.update!(type: 'upstream_server')
13
18
  end
14
19
  end
15
20
  end
@@ -0,0 +1,13 @@
1
+ class AddGeneratedForToContentViews < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :katello_content_views, :generated_for, :integer, :default => 0, :null => false
4
+ ::Katello::ContentView.reset_column_information
5
+ ::Katello::ContentView.
6
+ where(label: ::Katello::ContentView::IMPORT_LIBRARY).
7
+ update(generated_for: :library_import)
8
+
9
+ ::Katello::ContentView.
10
+ where('label like ?', "#{::Katello::ContentView::EXPORT_LIBRARY}%").
11
+ update(generated_for: :library_export)
12
+ end
13
+ end
@@ -1,20 +1,20 @@
1
1
  class ExpandSyncTimeoutSettings < ActiveRecord::Migration[6.0]
2
2
  def up
3
- old_timeout_setting = Setting.find_by(name: 'sync_connect_timeout', category: 'Setting::Content')
3
+ old_timeout_setting = Setting.find_by(name: 'sync_connect_timeout')
4
4
  if old_timeout_setting && (old_timeout_setting&.value != old_timeout_setting&.default)
5
5
  Setting.find_by(name: 'sync_total_timeout')&.update(value: old_timeout_setting&.value)
6
6
  Setting.find_by(name: 'sync_sock_read_timeout')&.update(value: old_timeout_setting&.value)
7
7
  end
8
- Setting.where(name: 'sync_connect_timeout', category: 'Setting::Content').delete_all
8
+ Setting.where(name: 'sync_connect_timeout').delete_all
9
9
  end
10
10
 
11
11
  def down
12
- timeout = Setting.find_by(name: 'sync_total_timeout', category: 'Setting::Content')&.value
12
+ timeout = Setting.find_by(name: 'sync_total_timeout')&.value
13
13
 
14
- Setting.where(name: 'sync_total_timeout', category: 'Setting::Content').delete_all
15
- Setting.where(name: 'sync_connect_timeout_v2', category: 'Setting::Content').delete_all
16
- Setting.where(name: 'sync_sock_connect_timeout', category: 'Setting::Content').delete_all
17
- Setting.where(name: 'sync_sock_read_timeout', category: 'Setting::Content').delete_all
14
+ Setting.where(name: 'sync_total_timeout').delete_all
15
+ Setting.where(name: 'sync_connect_timeout_v2').delete_all
16
+ Setting.where(name: 'sync_sock_connect_timeout').delete_all
17
+ Setting.where(name: 'sync_sock_read_timeout').delete_all
18
18
 
19
19
  Setting.create(Setting.set('sync_connect_timeout', N_("Timeout in seconds for downloads when syncing"),
20
20
  300, N_('Sync Connection Timeout')))
@@ -0,0 +1,12 @@
1
+ class RemoveDrpmFromIgnorableContent < ActiveRecord::Migration[6.0]
2
+ def up
3
+ Katello::RootRepository.select { |r| r&.ignorable_content&.include? "drpm" }.each do |root|
4
+ root.ignorable_content = root.ignorable_content - ["drpm"]
5
+ root.save!
6
+ end
7
+ end
8
+
9
+ def down
10
+ fail ActiveRecord::IrreversibleMigration
11
+ end
12
+ end