katello 4.7.4 → 4.8.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 (334) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +6 -4
  3. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +15 -12
  4. data/app/controllers/katello/api/v2/capsule_content_controller.rb +0 -4
  5. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +22 -81
  6. data/app/controllers/katello/api/v2/content_exports_controller.rb +11 -80
  7. data/app/controllers/katello/api/v2/content_imports_controller.rb +1 -0
  8. data/app/controllers/katello/api/v2/exports_controller.rb +130 -0
  9. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +7 -8
  10. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +8 -4
  11. data/app/controllers/katello/api/v2/organizations_controller.rb +3 -0
  12. data/app/controllers/katello/api/v2/package_groups_controller.rb +0 -52
  13. data/app/controllers/katello/concerns/api/v2/bulk_hosts_extensions.rb +4 -6
  14. data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +1 -2
  15. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +4 -1
  16. data/app/controllers/katello/concerns/content_facet_hosts_controller_extensions.rb +24 -0
  17. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +3 -3
  18. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +55 -24
  19. data/app/helpers/katello/katello_urls_helper.rb +0 -15
  20. data/app/helpers/katello/sync_management_helper.rb +0 -4
  21. data/app/lib/actions/candlepin/owner/destroy_imports.rb +1 -1
  22. data/app/lib/actions/katello/capsule_content/sync.rb +0 -4
  23. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +1 -2
  24. data/app/lib/actions/katello/content_view/publish.rb +6 -2
  25. data/app/lib/actions/katello/content_view/remove.rb +8 -2
  26. data/app/lib/actions/katello/content_view_version/destroy.rb +1 -1
  27. data/app/lib/actions/katello/environment/destroy.rb +8 -2
  28. data/app/lib/actions/katello/host/reassign.rb +4 -2
  29. data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +0 -1
  30. data/app/lib/actions/katello/product/destroy.rb +2 -1
  31. data/app/lib/actions/katello/repository/filtered_index_content.rb +2 -10
  32. data/app/lib/actions/katello/repository/import_upload.rb +0 -1
  33. data/app/lib/actions/katello/repository/sync.rb +0 -1
  34. data/app/lib/actions/katello/repository/update.rb +5 -3
  35. data/app/lib/actions/katello/repository/upload_files.rb +0 -1
  36. data/app/lib/actions/pulp3/abstract.rb +0 -6
  37. data/app/lib/actions/pulp3/content_view/delete_repository_references.rb +1 -2
  38. data/app/lib/actions/pulp3/content_view_version/create_syncable_export_history.rb +4 -0
  39. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +1 -0
  40. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +7 -2
  41. data/app/lib/actions/pulp3/orchestration/content_view_version/syncable_export.rb +7 -2
  42. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +1 -2
  43. data/app/lib/actions/pulp3/repository/save_distribution_references.rb +2 -2
  44. data/app/lib/katello/concerns/renderer_extensions.rb +1 -1
  45. data/app/lib/katello/event_daemon/runner.rb +12 -9
  46. data/app/lib/katello/resources/candlepin/consumer.rb +6 -6
  47. data/app/lib/katello/resources/candlepin/owner.rb +1 -1
  48. data/app/lib/katello/resources/candlepin/upstream_consumer.rb +3 -4
  49. data/app/lib/katello/resources/candlepin.rb +4 -4
  50. data/app/lib/katello/util/errata.rb +12 -10
  51. data/app/lib/katello/util/search.rb +0 -1
  52. data/app/lib/katello/validators/content_view_environment_org_validator.rb +5 -2
  53. data/app/lib/katello/validators/content_view_environment_validator.rb +1 -2
  54. data/app/lib/katello/validators/generated_content_view_validator.rb +16 -0
  55. data/app/mailers/katello/errata_mailer.rb +4 -2
  56. data/app/models/katello/alternate_content_source.rb +5 -1
  57. data/app/models/katello/concerns/content_facet_host_extensions.rb +25 -14
  58. data/app/models/katello/concerns/host_managed_extensions.rb +17 -8
  59. data/app/models/katello/concerns/redhat_extensions.rb +16 -6
  60. data/app/models/katello/concerns/smart_proxy_extensions.rb +0 -12
  61. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -0
  62. data/app/models/katello/content_view.rb +22 -5
  63. data/app/models/katello/content_view_environment.rb +11 -2
  64. data/app/models/katello/content_view_environment_content_facet.rb +9 -0
  65. data/app/models/katello/content_view_version.rb +10 -5
  66. data/app/models/katello/erratum.rb +6 -1
  67. data/app/models/katello/glue/candlepin/pool.rb +6 -0
  68. data/app/models/katello/glue/candlepin/product.rb +7 -1
  69. data/app/models/katello/glue/candlepin/subscription.rb +5 -0
  70. data/app/models/katello/glue/provider.rb +26 -26
  71. data/app/models/katello/host/content_facet.rb +106 -18
  72. data/app/models/katello/host/info_provider.rb +25 -21
  73. data/app/models/katello/host/subscription_facet.rb +18 -14
  74. data/app/models/katello/kt_environment.rb +12 -7
  75. data/app/models/katello/package_group.rb +0 -12
  76. data/app/models/katello/pool.rb +4 -1
  77. data/app/models/katello/product.rb +11 -1
  78. data/app/models/katello/repository.rb +11 -11
  79. data/app/models/katello/root_repository.rb +5 -4
  80. data/app/models/katello/task_status.rb +0 -18
  81. data/app/services/katello/candlepin/consumer.rb +2 -2
  82. data/app/services/katello/host/package_profile_uploader.rb +1 -1
  83. data/app/services/katello/product_content_finder.rb +11 -8
  84. data/app/services/katello/pulp3/content_view_version/export.rb +8 -65
  85. data/app/services/katello/pulp3/content_view_version/export_validation_error.rb +7 -0
  86. data/app/services/katello/pulp3/content_view_version/export_validator.rb +105 -0
  87. data/app/services/katello/pulp3/content_view_version/importable_products.rb +1 -1
  88. data/app/services/katello/pulp3/content_view_version/syncable_format_export.rb +7 -1
  89. data/app/services/katello/pulp3/erratum.rb +1 -0
  90. data/app/services/katello/pulp3/module_stream.rb +26 -11
  91. data/app/services/katello/pulp3/repository/yum.rb +2 -1
  92. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +2 -1
  93. data/app/services/katello/registration_manager.rb +46 -26
  94. data/app/services/katello/repository_type.rb +3 -9
  95. data/app/services/katello/simple_package.rb +22 -0
  96. data/app/views/foreman/smart_proxies/_content_sync.html.erb +1 -0
  97. data/app/views/foreman/smart_proxies/_reclaim_space.html.erb +1 -0
  98. data/app/views/katello/api/v2/content_facet/base.json.rabl +23 -2
  99. data/app/views/katello/api/v2/content_facet/show.json.rabl +11 -8
  100. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -1
  101. data/app/views/katello/api/v2/hosts/base.json.rabl +22 -2
  102. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +2 -2
  103. data/config/initializers/monkeys.rb +0 -2
  104. data/config/routes/api/registry.rb +8 -7
  105. data/config/routes/api/v2.rb +0 -2
  106. data/config/routes.rb +3 -0
  107. data/db/migrate/20200429153103_installed_package_bad_nvrea.rb +1 -1
  108. data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +7 -3
  109. data/db/migrate/20220419193414_content_settings_to_dsl_category.rb +1 -1
  110. data/db/migrate/20220929204746_add_content_view_environment_content_facet.rb +52 -0
  111. data/db/migrate/20221123212341_remove_pulp_docker_registry_port_setting.rb +5 -0
  112. data/db/migrate/20230119003859_ensure_repo_username_password_nil_not_blank.rb +1 -1
  113. data/db/seeds.d/111-upgrade_tasks.rb +2 -1
  114. data/engines/bastion/app/assets/stylesheets/bastion/bastion.scss +4 -0
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +2 -4
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +0 -1
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +2 -4
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -1
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +11 -3
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +1 -1
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +8 -4
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +5485 -0
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +5397 -0
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +5658 -0
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +5284 -0
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +5231 -0
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +5275 -0
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +5389 -0
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +5212 -0
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +5145 -0
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +9 -0
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +2 -2
  133. data/lib/katello/engine.rb +2 -1
  134. data/lib/katello/permission_creator.rb +2 -4
  135. data/lib/katello/permissions/registry_permissions.rb +5 -5
  136. data/lib/katello/plugin.rb +22 -14
  137. data/lib/katello/repository_types/README.md +136 -19
  138. data/lib/katello/repository_types/deb.rb +0 -1
  139. data/lib/katello/repository_types/docker.rb +0 -1
  140. data/lib/katello/repository_types/file.rb +0 -1
  141. data/lib/katello/repository_types/yum.rb +0 -4
  142. data/lib/katello/tasks/clean_candlepin_orphaned_products.rake +38 -0
  143. data/lib/katello/tasks/clean_orphaned_facets.rb +20 -0
  144. data/lib/katello/tasks/reimport.rake +1 -2
  145. data/lib/katello/tasks/repository.rake +1 -22
  146. data/lib/katello/tasks/reset.rake +1 -0
  147. data/lib/katello/tasks/upgrades/4.8/fix_incorrect_providers.rake +29 -0
  148. data/lib/katello/version.rb +1 -1
  149. data/lib/katello.rb +0 -5
  150. data/locale/bn/katello.po +69 -27
  151. data/locale/cs/katello.po +69 -27
  152. data/locale/de/katello.po +78 -36
  153. data/locale/en/katello.po +69 -27
  154. data/locale/es/katello.po +70 -28
  155. data/locale/fr/katello.po +73 -31
  156. data/locale/gu/katello.po +69 -27
  157. data/locale/hi/katello.po +69 -27
  158. data/locale/it/katello.po +69 -27
  159. data/locale/ja/katello.po +73 -31
  160. data/locale/ka/katello.po +73 -31
  161. data/locale/katello.pot +335 -262
  162. data/locale/kn/katello.po +69 -27
  163. data/locale/ko/katello.po +69 -27
  164. data/locale/mr/katello.po +69 -27
  165. data/locale/or/katello.po +69 -27
  166. data/locale/pa/katello.po +69 -27
  167. data/locale/pt/katello.po +69 -27
  168. data/locale/pt_BR/katello.po +70 -28
  169. data/locale/ru/katello.po +70 -28
  170. data/locale/ta/katello.po +69 -27
  171. data/locale/te/katello.po +69 -27
  172. data/locale/zh_CN/katello.po +73 -31
  173. data/locale/zh_TW/katello.po +70 -28
  174. data/webpack/components/Content/ContentPage.js +51 -35
  175. data/webpack/components/Content/__tests__/ContentPage.test.js +2 -4
  176. data/webpack/components/Content/__tests__/__snapshots__/ContentPage.test.js.snap +22 -3
  177. data/webpack/components/Table/EmptyStateMessage.js +14 -11
  178. data/webpack/components/Table/MainTable.js +36 -15
  179. data/webpack/components/Table/TableWrapper.js +25 -25
  180. data/webpack/components/Table/__test__/emptyStateMessage.test.js +51 -0
  181. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +5 -4
  182. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
  183. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +1 -17
  184. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +18 -9
  185. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +1 -2
  186. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +1 -2
  187. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +1 -2
  188. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +47 -27
  189. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +1 -2
  190. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +2 -21
  191. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +1 -28
  192. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +1 -10
  193. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +1 -18
  194. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +1 -17
  195. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +1 -15
  196. data/webpack/global_test_setup.js +1 -1
  197. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +12 -10
  198. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +6 -0
  199. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -0
  200. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +3 -10
  201. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +1 -0
  202. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +3 -3
  203. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +1 -0
  204. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +12 -4
  205. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +7 -4
  206. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -8
  207. data/webpack/scenes/AlternateContentSources/helpers.js +1 -1
  208. data/webpack/scenes/Content/Details/ContentRepositories.js +5 -4
  209. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +1 -12
  210. data/webpack/scenes/Content/Table/ContentTable.js +2 -1
  211. data/webpack/scenes/Content/__tests__/contentTable.test.js +1 -14
  212. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +1 -25
  213. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +2 -1
  214. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +44 -31
  215. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +2 -0
  216. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +6 -1
  217. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +2 -1
  218. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +2 -1
  219. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +3 -1
  220. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +3 -1
  221. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +3 -1
  222. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +2 -1
  223. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +2 -0
  224. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +2 -1
  225. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVDebMatchContentModal.js +1 -1
  226. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +1 -1
  227. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +35 -33
  228. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +48 -45
  229. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +58 -24
  230. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +64 -0
  231. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +36 -20
  232. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +40 -23
  233. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +0 -13
  234. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +0 -13
  235. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -1
  236. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +1 -10
  237. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +2 -1
  238. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +1 -10
  239. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareConfig.js +21 -9
  240. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareTable.js +4 -0
  241. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/CVVersionCompare.test.js +1 -32
  242. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +3 -1
  243. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +1 -15
  244. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +1 -1
  245. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +1 -2
  246. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +31 -9
  247. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -0
  248. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +30 -14
  249. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +1 -1
  250. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +55 -120
  251. data/webpack/scenes/ContentViews/components/WizardHeader.js +1 -1
  252. data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +1 -1
  253. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +8 -1
  254. data/webpack/scenes/ModuleStreams/ModuleStreamsPage.js +3 -9
  255. data/webpack/scenes/ModuleStreams/__tests__/__snapshots__/ModuleStreamPage.test.js.snap +7 -1
  256. data/webpack/scenes/RedHatRepositories/components/Search.js +22 -16
  257. data/webpack/scenes/RedHatRepositories/index.scss +20 -1
  258. data/webpack/scenes/SmartProxy/SmartProxyContentTable.js +12 -1
  259. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnTypeForm.js +1 -1
  260. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +1 -1
  261. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +21 -19
  262. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +34 -1
  263. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +20 -7
  264. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.test.js +0 -1
  265. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +65 -15
  266. metadata +50 -116
  267. data/app/lib/actions/katello/pulp_selector.rb +0 -24
  268. data/app/lib/actions/katello/repository/correct_checksum.rb +0 -24
  269. data/app/lib/actions/katello/repository/destroy_package_group.rb +0 -26
  270. data/app/lib/actions/katello/repository/upload_package_group.rb +0 -24
  271. data/app/lib/actions/pulp/abstract.rb +0 -37
  272. data/app/lib/actions/pulp/abstract_async_task.rb +0 -154
  273. data/app/lib/actions/pulp/abstract_async_task_group.rb +0 -94
  274. data/app/lib/actions/pulp/consumer/sync_capsule.rb +0 -45
  275. data/app/lib/actions/pulp/consumer/unassociate_units.rb +0 -20
  276. data/app/lib/actions/pulp/expect_one_task.rb +0 -11
  277. data/app/lib/actions/pulp/orchestration/orphan_cleanup/remove_orphans.rb +0 -16
  278. data/app/lib/actions/pulp/orchestration/repository/copy_all_units.rb +0 -19
  279. data/app/lib/actions/pulp/orchestration/repository/delete.rb +0 -15
  280. data/app/lib/actions/pulp/orchestration/repository/refresh.rb +0 -14
  281. data/app/lib/actions/pulp/orchestration/repository/refresh_if_needed.rb +0 -13
  282. data/app/lib/actions/pulp/orchestration/repository/refresh_repos.rb +0 -19
  283. data/app/lib/actions/pulp/orchestration/repository/remove_units.rb +0 -14
  284. data/app/lib/actions/pulp/orchestration/repository/smart_proxy_sync.rb +0 -34
  285. data/app/lib/actions/pulp/orchestration/repository/sync.rb +0 -18
  286. data/app/lib/actions/pulp/orchestration/repository/upload_content.rb +0 -37
  287. data/app/lib/actions/pulp/orphan_cleanup/remove_orphans.rb +0 -15
  288. data/app/lib/actions/pulp/orphan_cleanup/remove_unneeded_repos.rb +0 -16
  289. data/app/lib/actions/pulp/repository/abstract_copy_content.rb +0 -45
  290. data/app/lib/actions/pulp/repository/abstract_remove_content.rb +0 -32
  291. data/app/lib/actions/pulp/repository/clear.rb +0 -18
  292. data/app/lib/actions/pulp/repository/copy_all_units.rb +0 -30
  293. data/app/lib/actions/pulp/repository/copy_units.rb +0 -25
  294. data/app/lib/actions/pulp/repository/create.rb +0 -28
  295. data/app/lib/actions/pulp/repository/create_in_plan.rb +0 -15
  296. data/app/lib/actions/pulp/repository/create_upload_request.rb +0 -20
  297. data/app/lib/actions/pulp/repository/delete_upload_request.rb +0 -19
  298. data/app/lib/actions/pulp/repository/destroy.rb +0 -28
  299. data/app/lib/actions/pulp/repository/distributor_publish.rb +0 -25
  300. data/app/lib/actions/pulp/repository/download.rb +0 -16
  301. data/app/lib/actions/pulp/repository/import_upload.rb +0 -19
  302. data/app/lib/actions/pulp/repository/presenters/abstract_sync_presenter.rb +0 -47
  303. data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +0 -95
  304. data/app/lib/actions/pulp/repository/presenters/docker_presenter.rb +0 -103
  305. data/app/lib/actions/pulp/repository/presenters/file_unit_presenter.rb +0 -42
  306. data/app/lib/actions/pulp/repository/presenters/yum_presenter.rb +0 -131
  307. data/app/lib/actions/pulp/repository/refresh.rb +0 -21
  308. data/app/lib/actions/pulp/repository/regenerate_applicability.rb +0 -21
  309. data/app/lib/actions/pulp/repository/remove_distribution.rb +0 -11
  310. data/app/lib/actions/pulp/repository/remove_units.rb +0 -44
  311. data/app/lib/actions/pulp/repository/sync.rb +0 -99
  312. data/app/lib/actions/pulp/repository/upload_file.rb +0 -28
  313. data/app/lib/actions/pulp/repository_group/create.rb +0 -31
  314. data/app/lib/actions/pulp/repository_group/delete.rb +0 -17
  315. data/app/lib/actions/pulp/repository_group/export.rb +0 -51
  316. data/app/lib/katello/util/package_clause_generator.rb +0 -77
  317. data/app/models/katello/glue/pulp/pulp_errors.rb +0 -9
  318. data/app/models/katello/glue/pulp/repo.rb +0 -353
  319. data/app/models/katello/pulp_sync_status.rb +0 -165
  320. data/app/models/katello/pulp_task_status.rb +0 -63
  321. data/app/services/katello/pulp/content.rb +0 -24
  322. data/app/services/katello/pulp/importer_comparison.rb +0 -28
  323. data/app/services/katello/pulp/repository/deb.rb +0 -61
  324. data/app/services/katello/pulp/repository/docker.rb +0 -82
  325. data/app/services/katello/pulp/repository/file.rb +0 -52
  326. data/app/services/katello/pulp/repository/yum.rb +0 -205
  327. data/app/services/katello/pulp/repository.rb +0 -327
  328. data/app/services/katello/pulp/server.rb +0 -35
  329. data/app/services/katello/pulp/simple_package.rb +0 -24
  330. data/app/services/katello/pulp/smart_proxy_repository.rb +0 -52
  331. data/lib/monkeys/fix_deb_optimized_sync.rb +0 -35
  332. data/lib/monkeys/fix_pulp_container_path.rb +0 -35
  333. data/locale/zanata.xml +0 -30
  334. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentSearch.fixtures.json +0 -33
@@ -1,30 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class CopyAllUnits < Pulp::AbstractAsyncTask
5
- def plan(target_repo, _smart_proxy, source_repo, options = {})
6
- filter_ids = options.fetch(:filters, nil)&.map(&:id)
7
- rpm_filenames = options.fetch(:rpm_filenames, nil)
8
- solve_dependencies = options.fetch(:solve_dependencies, false)
9
-
10
- plan_self(source_repo_id: source_repo.id,
11
- target_repo_id: target_repo.id,
12
- filter_ids: filter_ids,
13
- solve_dependencies: solve_dependencies,
14
- rpm_filenames: rpm_filenames)
15
- end
16
-
17
- def invoke_external_task
18
- source_repo = ::Katello::Repository.find(input[:source_repo_id])
19
- target_repo = ::Katello::Repository.find(input[:target_repo_id])
20
- filters = ::Katello::ContentViewFilter.where(:id => input[:filter_ids])
21
-
22
- source_repo.backend_service(SmartProxy.pulp_primary).copy_contents(target_repo,
23
- filters: filters,
24
- solve_dependencies: input[:solve_dependencies],
25
- rpm_filenames: input[:rpm_filenames])
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,25 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class CopyUnits < Pulp::AbstractAsyncTask
5
- def plan(source_repo, target_repo, units, options = {})
6
- if units.any?
7
- plan_self(source_repo_id: source_repo.id,
8
- target_repo_id: target_repo.id,
9
- class_name: units.first.class.name,
10
- unit_ids: units.pluck(:id),
11
- incremental_update: options[:incremental_update])
12
- end
13
- end
14
-
15
- def invoke_external_task
16
- source_repo = ::Katello::Repository.find(input[:source_repo_id])
17
- target_repo = ::Katello::Repository.find(input[:target_repo_id])
18
- units = input[:class_name].constantize.where(:id => input[:unit_ids])
19
- source_repo.backend_service(SmartProxy.pulp_primary).copy_units(target_repo, units,
20
- incremental_update: input[:incremental_update])
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,28 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class Create < Pulp::Abstract
5
- include Helpers::Presenter
6
-
7
- input_format do
8
- param :repository_id
9
- param :capsule_id
10
- end
11
-
12
- def plan(repository, smart_proxy = SmartProxy.pulp_primary!)
13
- plan_self(:repository_id => repository.id, :capsule_id => smart_proxy.id)
14
- end
15
-
16
- def run
17
- if input[:repository_id]
18
- repo = ::Katello::Repository.find(input[:repository_id])
19
- end
20
- output[:response] = repo.backend_service(smart_proxy(input[:capsule_id])).create
21
- rescue RestClient::Conflict
22
- Rails.logger.warn("Tried to add repository #{input[:pulp_id]} that already exists.")
23
- []
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,15 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class CreateInPlan < Create
5
- alias_method :perform_run, :run
6
-
7
- def plan(repository, smart_proxy)
8
- input[:response] = repository.backend_service(smart_proxy).create
9
- rescue RestClient::Conflict
10
- Rails.logger.warn("Tried to add repository #{input[:pulp_id]} that already exists.")
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,20 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class CreateUploadRequest < Pulp::Abstract
5
- input_format do
6
- end
7
-
8
- output_format do
9
- param :response
10
- param :upload_id
11
- end
12
-
13
- def run
14
- output[:response] = pulp_resources.content.create_upload_request
15
- output[:upload_id] = output[:response][:upload_id]
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,19 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class DeleteUploadRequest < Pulp::Abstract
5
- input_format do
6
- param :upload_id
7
- end
8
-
9
- output_format do
10
- param :response
11
- end
12
-
13
- def run
14
- output[:response] = pulp_resources.content.delete_upload_request(input[:upload_id])
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,28 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class Destroy < Pulp::AbstractAsyncTask
5
- input_format do
6
- param :repository_id
7
- param :capsule_id
8
- param :content_view_puppet_environment_id
9
- end
10
-
11
- def invoke_external_task
12
- begin
13
- if input[:content_view_puppet_environment_id]
14
- repo = ::Katello::ContentViewPuppetEnvironment.find(input[:content_view_puppet_environment_id]).nonpersisted_repository
15
- else
16
- repo = ::Katello::Repository.find(input[:repository_id])
17
- end
18
- rescue ActiveRecord::RecordNotFound
19
- Rails.logger.warn("Tried to delete repository #{input[:repository_id]}, but it did not exist.")
20
- return []
21
- end
22
- capsule = input[:capsule_id] ? smart_proxy(input[:capsule_id]) : SmartProxy.pulp_primary
23
- output[:pulp_tasks] = repo.backend_service(capsule).delete
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,25 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class DistributorPublish < Pulp::AbstractAsyncTask
5
- middleware.use Actions::Middleware::SkipIfMatchingContent
6
-
7
- def plan(repository, smart_proxy, options)
8
- options = {:smart_proxy_id => smart_proxy.id, :options => options, :dependency => options[:dependency]}
9
- options[:repository_id] = repository.id
10
- plan_self(options)
11
- end
12
-
13
- def invoke_external_task
14
- repo = ::Katello::Repository.find_by(:id => input[:repository_id])
15
- repo.clear_smart_proxy_sync_histories if smart_proxy(input[:smart_proxy_id]).pulp_primary?
16
- repo.backend_service(smart_proxy(input[:smart_proxy_id])).distributor_publish(input[:options])
17
- end
18
-
19
- def humanized_name
20
- _("Repository metadata publish")
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,16 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class Download < Pulp::AbstractAsyncTask
5
- input_format do
6
- param :pulp_id
7
- param :options
8
- end
9
-
10
- def invoke_external_task
11
- output[:pulp_tasks] = pulp_resources.repository.download(input[:pulp_id], input[:options])
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,19 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class ImportUpload < Pulp::AbstractAsyncTask
5
- def plan(_repo, _smart_proxy, options)
6
- plan_self(:options => options)
7
- end
8
-
9
- def invoke_external_task
10
- output[:pulp_tasks] = [pulp_resources.content.import_into_repo(input[:options][:pulp_id],
11
- input[:options][:unit_type_id],
12
- input[:options][:upload_id],
13
- input[:options][:unit_key],
14
- unit_metadata: input[:options][:unit_metadata] || {})]
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,47 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- module Presenters
5
- class AbstractSyncPresenter < Helpers::Presenter::Base
6
- def humanized_output
7
- if action.external_task
8
- humanized_details
9
- end
10
- end
11
-
12
- private
13
-
14
- def humanized_details
15
- fail NotImplementedError
16
- end
17
-
18
- def sync_task
19
- tasks = action.external_task.select do |task|
20
- if task.key? 'tags'
21
- task['tags'].include?("pulp:action:sync")
22
- else
23
- # workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1131537
24
- # as the sync plan tasks don't have tags in pulp
25
- task['result'] &&
26
- task['result']['importer_type_id'].to_s =~ /_importer$/
27
- end
28
- end
29
- tasks.first
30
- end
31
-
32
- def cancelled?
33
- sync_task['state'] == 'canceled'
34
- end
35
-
36
- def task_result
37
- sync_task['result']
38
- end
39
-
40
- def task_result_details
41
- task_result && task_result['details']
42
- end
43
- end
44
- end
45
- end
46
- end
47
- end
@@ -1,95 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- module Presenters
5
- class DebPresenter < AbstractSyncPresenter
6
- def progress
7
- if items_total > 0
8
- items_done.to_f / items_total
9
- else
10
- 0.01
11
- end
12
- end
13
-
14
- private
15
-
16
- def humanized_details
17
- task_details&.inject([]) do |res, step|
18
- res.append("#{step[:description]} (#{step[:num_processed]}/#{step[:items_total]})") if step[:state] == "IN_PROGRESS"
19
- res
20
- end
21
- end
22
-
23
- def size_summary
24
- helper = Object.new.extend(ActionView::Helpers::NumberHelper)
25
- if content_details[:state] == "IN_PROGRESS"
26
- "#{helper.number_to_human_size(size_done)}/#{helper.number_to_human_size(size_total)}"
27
- else
28
- helper.number_to_human_size(size_total)
29
- end
30
- end
31
-
32
- def task_progress
33
- sync_task[:progress_report]
34
- end
35
-
36
- def task_progress_details
37
- task_progress && task_progress[:deb_importer]
38
- end
39
-
40
- def task_details
41
- task_result_details || task_progress_details
42
- end
43
-
44
- def content_details
45
- task_details && task_details[:content]
46
- end
47
-
48
- def error_details
49
- content_details.nil? ? [] : content_details[:error_details]
50
- end
51
-
52
- def metadata_details
53
- task_details && task_details[:metadata]
54
- end
55
-
56
- def items_done
57
- task_details&.inject(0) { |sum, details| sum + details[:num_success].to_i } || 0
58
- end
59
-
60
- def items_total
61
- task_details&.inject(0) { |sum, details| sum + details[:items_total].to_i } || 0
62
- end
63
-
64
- def size_done
65
- size_total - content_details[:size_left]
66
- end
67
-
68
- def size_total
69
- (content_details && content_details[:size_total]).to_i
70
- end
71
-
72
- def cancelled?
73
- task_details.nil? ? false : task_details.values.map { |item| item['state'] }.include?('CANCELLED')
74
- end
75
-
76
- def content_started?
77
- content_details && content_details[:state] != 'NOT_STARTED'
78
- end
79
-
80
- def metadata_in_progress?
81
- metadata_details && metadata_details[:state] == 'IN_PROGRESS'
82
- end
83
-
84
- def metadata_error
85
- metadata_details && metadata_details[:error]
86
- end
87
-
88
- def pending?
89
- metadata_details.nil? || metadata_details['state'] == 'NOT_RUNNING'
90
- end
91
- end
92
- end
93
- end
94
- end
95
- end
@@ -1,103 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- module Presenters
5
- class DockerPresenter < AbstractSyncPresenter
6
- def progress
7
- details = task_progress_details
8
- if details
9
- completion = 0.0
10
- completion += 0.1 if content_completed?(details("sync_step_metadata"))
11
- completion += 0.1 if content_completed?(details("get_local"))
12
- completion += 0.1 if content_completed?(details("sync_step_save"))
13
- download_details = details("sync_step_download")
14
- if content_completed?(download_details)
15
- completion += 0.7
16
- elsif content_started?(download_details) && items_total(download_details) > 0
17
- completion += 0.7 * items_done(download_details) / items_total(download_details)
18
- end
19
- completion
20
- else
21
- 0.01
22
- end
23
- end
24
-
25
- private
26
-
27
- def humanized_details
28
- download_details = details("sync_step_download")
29
- ret = []
30
- ret << _("Cancelled.") if cancelled?
31
-
32
- if content_started?(download_details)
33
- if items_total(download_details) > 0
34
- ret << (_("New blobs: %{count}.") % {:count => count_summary})
35
- end
36
- elsif sync_task["state"] == "running"
37
- ret << _("Processing metadata")
38
- end
39
-
40
- ret << metadata_error if metadata_error
41
- ret.join("\n")
42
- end
43
-
44
- def count_summary
45
- download_details = details("sync_step_download")
46
-
47
- if download_details[:state] == "IN_PROGRESS"
48
- "#{items_done(download_details)}/#{items_total(download_details)}"
49
- else
50
- items_done(download_details)
51
- end
52
- end
53
-
54
- def details(step_type)
55
- task_progress_details&.find do |step|
56
- step[:step_type] == step_type
57
- end
58
- end
59
-
60
- def task_progress
61
- sync_task['progress_report']
62
- end
63
-
64
- def task_progress_details
65
- task_progress && task_progress['docker_importer']
66
- end
67
-
68
- def total
69
- task_progress_details
70
- end
71
-
72
- def items_done(content_details)
73
- content_details[:num_processed]
74
- end
75
-
76
- def items_total(content_details)
77
- content_details && content_details[:items_total].to_i
78
- end
79
-
80
- def content_started?(content_details)
81
- content_details && content_details[:state] != 'NOT_STARTED'
82
- end
83
-
84
- def content_completed?(content_details)
85
- content_details && content_details[:state] == 'FINISHED'
86
- end
87
-
88
- def pending?(_content_details)
89
- task_progress.nil? || task_progress['state'] == 'NOT_RUNNING'
90
- end
91
-
92
- def metadata_in_progress?
93
- sync_task && sync_task[:state] == 'started'
94
- end
95
-
96
- def metadata_error
97
- sync_task && sync_task[:state] == 'error' && sync_task[:error][:description]
98
- end
99
- end
100
- end
101
- end
102
- end
103
- end
@@ -1,42 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- module Presenters
5
- class FileUnitPresenter < AbstractSyncPresenter
6
- def progress
7
- total_bytes == 0 ? 0.01 : finished_bytes.to_f / total_bytes
8
- end
9
-
10
- private
11
-
12
- def humanized_details
13
- ret = []
14
- ret << _("Cancelled.") if cancelled?
15
- ret << _("New Files: %s") % num_isos
16
- ret.join("\n")
17
- end
18
-
19
- def num_isos
20
- task_progress_details && task_progress_details['num_isos'] || 0
21
- end
22
-
23
- def total_bytes
24
- task_progress_details && task_progress_details['total_bytes'] || 0
25
- end
26
-
27
- def finished_bytes
28
- task_progress_details && task_progress_details['finished_bytes'] || 0
29
- end
30
-
31
- def task_progress_details
32
- task_progress && task_progress['iso_importer']
33
- end
34
-
35
- def task_progress
36
- sync_task['progress_report']
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
@@ -1,131 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- module Presenters
5
- class YumPresenter < AbstractSyncPresenter
6
- def progress
7
- if sync_task && size_total > 0
8
- size_done.to_f / size_total
9
- else
10
- 0.01
11
- end
12
- end
13
-
14
- private
15
-
16
- def humanized_details
17
- ret = []
18
- ret << _("Cancelled.") if cancelled?
19
-
20
- if pending?
21
- ret << _("Pending")
22
- elsif content_started?
23
- if items_total > 0
24
- ret << (_("New packages: %{count} (%{size}).") % {:count => count_summary, :size => size_summary})
25
- else
26
- #if there are no new packages, it could just mean that they have not started downloading yet
27
- # so only tell the user no new packages if errata have been processed
28
- if errata_details && errata_details['state'] != 'NOT_STARTED'
29
- ret << _("No new packages.")
30
- else
31
- ret << _("Processing metadata.")
32
- end
33
- end
34
- elsif metadata_in_progress?
35
- ret << _("Processing metadata")
36
- end
37
-
38
- ret << _('Yum Metadata: %s') % metadata_error if metadata_error
39
-
40
- if error_details.any?
41
- ret << n_("Failed to download %s package.", "Failed to download %s packages.",
42
- error_details.count) % error_details.count
43
- end
44
- ret.join("\n")
45
- end
46
-
47
- def count_summary
48
- if content_details[:state] == "IN_PROGRESS"
49
- "#{items_done}/#{items_total}"
50
- else
51
- items_done
52
- end
53
- end
54
-
55
- def size_summary
56
- helper = Object.new.extend(ActionView::Helpers::NumberHelper)
57
- if content_details[:state] == "IN_PROGRESS"
58
- "#{helper.number_to_human_size(size_done)}/#{helper.number_to_human_size(size_total)}"
59
- else
60
- helper.number_to_human_size(size_total)
61
- end
62
- end
63
-
64
- def task_progress
65
- sync_task[:progress_report]
66
- end
67
-
68
- def task_progress_details
69
- task_progress && task_progress[:yum_importer]
70
- end
71
-
72
- def task_details
73
- task_result_details || task_progress_details
74
- end
75
-
76
- def content_details
77
- task_details && task_details[:content]
78
- end
79
-
80
- def error_details
81
- content_details.nil? ? [] : content_details[:error_details]
82
- end
83
-
84
- def metadata_details
85
- task_details && task_details[:metadata]
86
- end
87
-
88
- def errata_details
89
- task_details && task_details[:errata]
90
- end
91
-
92
- def items_done
93
- items_total - content_details[:items_left]
94
- end
95
-
96
- def items_total
97
- content_details[:items_total].to_i
98
- end
99
-
100
- def size_done
101
- size_total - content_details[:size_left]
102
- end
103
-
104
- def size_total
105
- (content_details && content_details[:size_total]).to_i
106
- end
107
-
108
- def cancelled?
109
- task_details.nil? ? false : task_details.values.map { |item| item['state'] }.include?('CANCELLED')
110
- end
111
-
112
- def content_started?
113
- content_details && content_details[:state] != 'NOT_STARTED'
114
- end
115
-
116
- def metadata_in_progress?
117
- metadata_details && metadata_details[:state] == 'IN_PROGRESS'
118
- end
119
-
120
- def metadata_error
121
- metadata_details && metadata_details[:error]
122
- end
123
-
124
- def pending?
125
- metadata_details.nil? || metadata_details['state'] == 'NOT_RUNNING'
126
- end
127
- end
128
- end
129
- end
130
- end
131
- end
@@ -1,21 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class Refresh < Pulp::AbstractAsyncTask
5
- def plan(repository, options = {})
6
- options[:capsule_id] ||= SmartProxy.default_capsule!.id
7
- plan_self(:capsule_id => options[:capsule_id], :pulp_id => repository.pulp_id)
8
- end
9
-
10
- def invoke_external_task
11
- repo = ::Katello::Repository.find_by(:pulp_id => input[:pulp_id])
12
- if repo.nil?
13
- repo = ::Katello::ContentViewPuppetEnvironment.find_by(:pulp_id => input[:pulp_id])
14
- repo = repo.nonpersisted_repository
15
- end
16
- repo.backend_service(smart_proxy(input[:capsule_id])).refresh_if_needed
17
- end
18
- end
19
- end
20
- end
21
- end