katello 4.7.6 → 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 (365) 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/api/v2/simple_content_access_controller.rb +1 -3
  14. data/app/controllers/katello/concerns/api/v2/bulk_hosts_extensions.rb +4 -6
  15. data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +1 -2
  16. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +4 -1
  17. data/app/controllers/katello/concerns/content_facet_hosts_controller_extensions.rb +24 -0
  18. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +3 -3
  19. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +55 -24
  20. data/app/helpers/katello/katello_urls_helper.rb +0 -15
  21. data/app/helpers/katello/sync_management_helper.rb +0 -4
  22. data/app/lib/actions/candlepin/owner/destroy_imports.rb +1 -1
  23. data/app/lib/actions/katello/capsule_content/sync.rb +0 -4
  24. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +1 -2
  25. data/app/lib/actions/katello/content_view/publish.rb +6 -2
  26. data/app/lib/actions/katello/content_view/remove.rb +8 -2
  27. data/app/lib/actions/katello/content_view_version/destroy.rb +1 -1
  28. data/app/lib/actions/katello/environment/destroy.rb +8 -2
  29. data/app/lib/actions/katello/host/reassign.rb +4 -2
  30. data/app/lib/actions/katello/organization/simple_content_access/enable.rb +0 -10
  31. data/app/lib/actions/katello/organization/simple_content_access/toggle.rb +2 -12
  32. data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +0 -1
  33. data/app/lib/actions/katello/product/destroy.rb +2 -1
  34. data/app/lib/actions/katello/repository/filtered_index_content.rb +2 -10
  35. data/app/lib/actions/katello/repository/import_upload.rb +0 -1
  36. data/app/lib/actions/katello/repository/sync.rb +0 -1
  37. data/app/lib/actions/katello/repository/update.rb +5 -3
  38. data/app/lib/actions/katello/repository/upload_files.rb +0 -1
  39. data/app/lib/actions/pulp3/abstract.rb +0 -6
  40. data/app/lib/actions/pulp3/content_view/delete_repository_references.rb +1 -2
  41. data/app/lib/actions/pulp3/content_view_version/create_syncable_export_history.rb +4 -0
  42. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +1 -0
  43. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +7 -2
  44. data/app/lib/actions/pulp3/orchestration/content_view_version/syncable_export.rb +7 -2
  45. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +1 -2
  46. data/app/lib/actions/pulp3/repository/save_distribution_references.rb +2 -2
  47. data/app/lib/katello/concerns/base_template_scope_extensions.rb +1 -1
  48. data/app/lib/katello/concerns/renderer_extensions.rb +1 -1
  49. data/app/lib/katello/event_daemon/runner.rb +12 -9
  50. data/app/lib/katello/resources/candlepin/consumer.rb +6 -6
  51. data/app/lib/katello/resources/candlepin/owner.rb +1 -1
  52. data/app/lib/katello/resources/candlepin/upstream_consumer.rb +3 -4
  53. data/app/lib/katello/resources/candlepin.rb +4 -4
  54. data/app/lib/katello/util/errata.rb +12 -10
  55. data/app/lib/katello/util/search.rb +0 -1
  56. data/app/lib/katello/validators/content_view_environment_org_validator.rb +5 -2
  57. data/app/lib/katello/validators/content_view_environment_validator.rb +1 -2
  58. data/app/lib/katello/validators/generated_content_view_validator.rb +16 -0
  59. data/app/mailers/katello/errata_mailer.rb +4 -2
  60. data/app/models/katello/alternate_content_source.rb +5 -1
  61. data/app/models/katello/concerns/content_facet_host_extensions.rb +25 -14
  62. data/app/models/katello/concerns/host_managed_extensions.rb +17 -8
  63. data/app/models/katello/concerns/redhat_extensions.rb +16 -6
  64. data/app/models/katello/concerns/smart_proxy_extensions.rb +0 -12
  65. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -0
  66. data/app/models/katello/content_view.rb +22 -5
  67. data/app/models/katello/content_view_environment.rb +11 -2
  68. data/app/models/katello/content_view_environment_content_facet.rb +9 -0
  69. data/app/models/katello/content_view_version.rb +10 -5
  70. data/app/models/katello/erratum.rb +6 -1
  71. data/app/models/katello/glue/candlepin/pool.rb +6 -0
  72. data/app/models/katello/glue/candlepin/product.rb +7 -1
  73. data/app/models/katello/glue/candlepin/subscription.rb +5 -0
  74. data/app/models/katello/glue/provider.rb +26 -26
  75. data/app/models/katello/host/content_facet.rb +106 -18
  76. data/app/models/katello/host/info_provider.rb +25 -21
  77. data/app/models/katello/host/subscription_facet.rb +18 -14
  78. data/app/models/katello/kt_environment.rb +12 -7
  79. data/app/models/katello/package_group.rb +0 -12
  80. data/app/models/katello/pool.rb +4 -1
  81. data/app/models/katello/product.rb +11 -1
  82. data/app/models/katello/product_content.rb +0 -4
  83. data/app/models/katello/repository.rb +11 -11
  84. data/app/models/katello/root_repository.rb +4 -3
  85. data/app/models/katello/task_status.rb +0 -18
  86. data/app/services/katello/candlepin/consumer.rb +2 -2
  87. data/app/services/katello/host/package_profile_uploader.rb +1 -1
  88. data/app/services/katello/product_content_finder.rb +11 -12
  89. data/app/services/katello/pulp3/content_view_version/export.rb +8 -65
  90. data/app/services/katello/pulp3/content_view_version/export_validation_error.rb +7 -0
  91. data/app/services/katello/pulp3/content_view_version/export_validator.rb +105 -0
  92. data/app/services/katello/pulp3/content_view_version/importable_products.rb +1 -1
  93. data/app/services/katello/pulp3/content_view_version/syncable_format_export.rb +7 -1
  94. data/app/services/katello/pulp3/erratum.rb +1 -0
  95. data/app/services/katello/pulp3/module_stream.rb +26 -11
  96. data/app/services/katello/pulp3/repository/yum.rb +2 -1
  97. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +2 -1
  98. data/app/services/katello/registration_manager.rb +46 -26
  99. data/app/services/katello/repository_type.rb +3 -9
  100. data/app/services/katello/simple_package.rb +22 -0
  101. data/app/views/foreman/smart_proxies/_content_sync.html.erb +1 -0
  102. data/app/views/foreman/smart_proxies/_reclaim_space.html.erb +1 -0
  103. data/app/views/katello/api/v2/content_facet/base.json.rabl +23 -2
  104. data/app/views/katello/api/v2/content_facet/show.json.rabl +11 -8
  105. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -1
  106. data/app/views/katello/api/v2/hosts/base.json.rabl +22 -2
  107. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +2 -2
  108. data/config/initializers/monkeys.rb +0 -2
  109. data/config/routes/api/registry.rb +8 -7
  110. data/config/routes/api/v2.rb +0 -2
  111. data/config/routes.rb +3 -0
  112. data/db/migrate/20200429153103_installed_package_bad_nvrea.rb +1 -1
  113. data/db/migrate/20220110223754_update_disconnected_settings.rb +4 -8
  114. data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +7 -3
  115. data/db/migrate/20220419193414_content_settings_to_dsl_category.rb +1 -1
  116. data/db/migrate/20220929204746_add_content_view_environment_content_facet.rb +52 -0
  117. data/db/migrate/20221123212341_remove_pulp_docker_registry_port_setting.rb +5 -0
  118. data/db/migrate/20230119003859_ensure_repo_username_password_nil_not_blank.rb +1 -1
  119. data/db/seeds.d/111-upgrade_tasks.rb +2 -1
  120. data/engines/bastion/app/assets/stylesheets/bastion/bastion.scss +4 -0
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +2 -4
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +0 -1
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +2 -4
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -1
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +11 -3
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-hosts-list.html +1 -1
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +8 -4
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +5485 -0
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +5397 -0
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +5658 -0
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +5284 -0
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +5231 -0
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +5275 -0
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +5389 -0
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +5212 -0
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +5145 -0
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +9 -0
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +2 -2
  139. data/lib/katello/engine.rb +2 -1
  140. data/lib/katello/permission_creator.rb +2 -4
  141. data/lib/katello/permissions/registry_permissions.rb +5 -5
  142. data/lib/katello/plugin.rb +22 -14
  143. data/lib/katello/repository_types/README.md +136 -19
  144. data/lib/katello/repository_types/deb.rb +0 -1
  145. data/lib/katello/repository_types/docker.rb +0 -1
  146. data/lib/katello/repository_types/file.rb +0 -1
  147. data/lib/katello/repository_types/yum.rb +0 -4
  148. data/lib/katello/tasks/clean_candlepin_orphaned_products.rake +38 -0
  149. data/lib/katello/tasks/clean_orphaned_facets.rb +20 -0
  150. data/lib/katello/tasks/reimport.rake +1 -2
  151. data/lib/katello/tasks/repository.rake +1 -22
  152. data/lib/katello/tasks/reset.rake +1 -0
  153. data/lib/katello/tasks/upgrades/4.8/fix_incorrect_providers.rake +29 -0
  154. data/lib/katello/version.rb +1 -1
  155. data/lib/katello.rb +0 -5
  156. data/locale/bn/katello.po +69 -27
  157. data/locale/cs/katello.po +69 -27
  158. data/locale/de/katello.po +78 -36
  159. data/locale/en/katello.po +69 -27
  160. data/locale/es/katello.po +70 -28
  161. data/locale/fr/katello.po +73 -31
  162. data/locale/gu/katello.po +69 -27
  163. data/locale/hi/katello.po +69 -27
  164. data/locale/it/katello.po +69 -27
  165. data/locale/ja/katello.po +73 -31
  166. data/locale/ka/katello.po +73 -31
  167. data/locale/katello.pot +335 -262
  168. data/locale/kn/katello.po +69 -27
  169. data/locale/ko/katello.po +69 -27
  170. data/locale/mr/katello.po +69 -27
  171. data/locale/or/katello.po +69 -27
  172. data/locale/pa/katello.po +69 -27
  173. data/locale/pt/katello.po +69 -27
  174. data/locale/pt_BR/katello.po +70 -28
  175. data/locale/ru/katello.po +70 -28
  176. data/locale/ta/katello.po +69 -27
  177. data/locale/te/katello.po +69 -27
  178. data/locale/zh_CN/katello.po +73 -31
  179. data/locale/zh_TW/katello.po +70 -28
  180. data/webpack/components/Content/ContentPage.js +51 -35
  181. data/webpack/components/Content/__tests__/ContentPage.test.js +2 -4
  182. data/webpack/components/Content/__tests__/__snapshots__/ContentPage.test.js.snap +22 -3
  183. data/webpack/components/Table/EmptyStateMessage.js +14 -11
  184. data/webpack/components/Table/MainTable.js +36 -15
  185. data/webpack/components/Table/TableWrapper.js +25 -25
  186. data/webpack/components/Table/__test__/emptyStateMessage.test.js +51 -0
  187. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +5 -4
  188. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
  189. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +1 -17
  190. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +18 -9
  191. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +1 -2
  192. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +1 -2
  193. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +1 -2
  194. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +47 -27
  195. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +1 -2
  196. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +2 -21
  197. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +1 -28
  198. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +1 -10
  199. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +1 -18
  200. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +1 -17
  201. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +1 -15
  202. data/webpack/global_test_setup.js +1 -1
  203. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +12 -10
  204. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +6 -0
  205. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -0
  206. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +3 -10
  207. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +1 -0
  208. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +3 -3
  209. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +1 -0
  210. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +12 -4
  211. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +7 -4
  212. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -8
  213. data/webpack/scenes/AlternateContentSources/helpers.js +1 -1
  214. data/webpack/scenes/Content/Details/ContentRepositories.js +5 -4
  215. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +1 -12
  216. data/webpack/scenes/Content/Table/ContentTable.js +2 -1
  217. data/webpack/scenes/Content/__tests__/contentTable.test.js +1 -14
  218. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +1 -25
  219. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +2 -1
  220. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +44 -31
  221. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +2 -0
  222. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +6 -1
  223. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +2 -1
  224. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +2 -1
  225. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +3 -1
  226. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +3 -1
  227. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +3 -1
  228. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +2 -1
  229. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +2 -0
  230. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +2 -1
  231. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVDebMatchContentModal.js +1 -1
  232. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +1 -1
  233. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +35 -33
  234. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +48 -45
  235. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +58 -24
  236. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +64 -0
  237. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +36 -20
  238. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +40 -23
  239. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +0 -13
  240. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +0 -13
  241. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -1
  242. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +1 -10
  243. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +2 -1
  244. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +1 -10
  245. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareConfig.js +21 -9
  246. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareTable.js +4 -0
  247. data/webpack/scenes/ContentViews/Details/Versions/Compare/__tests__/CVVersionCompare.test.js +1 -32
  248. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +3 -1
  249. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +1 -15
  250. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +1 -1
  251. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +1 -2
  252. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +31 -9
  253. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -0
  254. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +30 -14
  255. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +1 -1
  256. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +55 -120
  257. data/webpack/scenes/ContentViews/components/WizardHeader.js +1 -1
  258. data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +1 -1
  259. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +8 -1
  260. data/webpack/scenes/ModuleStreams/ModuleStreamsPage.js +3 -9
  261. data/webpack/scenes/ModuleStreams/__tests__/__snapshots__/ModuleStreamPage.test.js.snap +7 -1
  262. data/webpack/scenes/RedHatRepositories/components/Search.js +22 -16
  263. data/webpack/scenes/RedHatRepositories/index.scss +20 -1
  264. data/webpack/scenes/SmartProxy/SmartProxyContentTable.js +12 -1
  265. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnTypeForm.js +1 -1
  266. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +1 -1
  267. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +21 -19
  268. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +34 -1
  269. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +20 -7
  270. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.test.js +0 -1
  271. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +65 -15
  272. metadata +49 -146
  273. data/app/lib/actions/katello/organization/simple_content_access/prepare_content_overrides.rb +0 -36
  274. data/app/lib/actions/katello/pulp_selector.rb +0 -24
  275. data/app/lib/actions/katello/repository/correct_checksum.rb +0 -24
  276. data/app/lib/actions/katello/repository/destroy_package_group.rb +0 -26
  277. data/app/lib/actions/katello/repository/upload_package_group.rb +0 -24
  278. data/app/lib/actions/pulp/abstract.rb +0 -37
  279. data/app/lib/actions/pulp/abstract_async_task.rb +0 -154
  280. data/app/lib/actions/pulp/abstract_async_task_group.rb +0 -94
  281. data/app/lib/actions/pulp/consumer/sync_capsule.rb +0 -45
  282. data/app/lib/actions/pulp/consumer/unassociate_units.rb +0 -20
  283. data/app/lib/actions/pulp/expect_one_task.rb +0 -11
  284. data/app/lib/actions/pulp/orchestration/orphan_cleanup/remove_orphans.rb +0 -16
  285. data/app/lib/actions/pulp/orchestration/repository/copy_all_units.rb +0 -19
  286. data/app/lib/actions/pulp/orchestration/repository/delete.rb +0 -15
  287. data/app/lib/actions/pulp/orchestration/repository/refresh.rb +0 -14
  288. data/app/lib/actions/pulp/orchestration/repository/refresh_if_needed.rb +0 -13
  289. data/app/lib/actions/pulp/orchestration/repository/refresh_repos.rb +0 -19
  290. data/app/lib/actions/pulp/orchestration/repository/remove_units.rb +0 -14
  291. data/app/lib/actions/pulp/orchestration/repository/smart_proxy_sync.rb +0 -34
  292. data/app/lib/actions/pulp/orchestration/repository/sync.rb +0 -18
  293. data/app/lib/actions/pulp/orchestration/repository/upload_content.rb +0 -37
  294. data/app/lib/actions/pulp/orphan_cleanup/remove_orphans.rb +0 -15
  295. data/app/lib/actions/pulp/orphan_cleanup/remove_unneeded_repos.rb +0 -16
  296. data/app/lib/actions/pulp/repository/abstract_copy_content.rb +0 -45
  297. data/app/lib/actions/pulp/repository/abstract_remove_content.rb +0 -32
  298. data/app/lib/actions/pulp/repository/clear.rb +0 -18
  299. data/app/lib/actions/pulp/repository/copy_all_units.rb +0 -30
  300. data/app/lib/actions/pulp/repository/copy_units.rb +0 -25
  301. data/app/lib/actions/pulp/repository/create.rb +0 -28
  302. data/app/lib/actions/pulp/repository/create_in_plan.rb +0 -15
  303. data/app/lib/actions/pulp/repository/create_upload_request.rb +0 -20
  304. data/app/lib/actions/pulp/repository/delete_upload_request.rb +0 -19
  305. data/app/lib/actions/pulp/repository/destroy.rb +0 -28
  306. data/app/lib/actions/pulp/repository/distributor_publish.rb +0 -25
  307. data/app/lib/actions/pulp/repository/download.rb +0 -16
  308. data/app/lib/actions/pulp/repository/import_upload.rb +0 -19
  309. data/app/lib/actions/pulp/repository/presenters/abstract_sync_presenter.rb +0 -47
  310. data/app/lib/actions/pulp/repository/presenters/deb_presenter.rb +0 -95
  311. data/app/lib/actions/pulp/repository/presenters/docker_presenter.rb +0 -103
  312. data/app/lib/actions/pulp/repository/presenters/file_unit_presenter.rb +0 -42
  313. data/app/lib/actions/pulp/repository/presenters/yum_presenter.rb +0 -131
  314. data/app/lib/actions/pulp/repository/refresh.rb +0 -21
  315. data/app/lib/actions/pulp/repository/regenerate_applicability.rb +0 -21
  316. data/app/lib/actions/pulp/repository/remove_distribution.rb +0 -11
  317. data/app/lib/actions/pulp/repository/remove_units.rb +0 -44
  318. data/app/lib/actions/pulp/repository/sync.rb +0 -99
  319. data/app/lib/actions/pulp/repository/upload_file.rb +0 -28
  320. data/app/lib/actions/pulp/repository_group/create.rb +0 -31
  321. data/app/lib/actions/pulp/repository_group/delete.rb +0 -17
  322. data/app/lib/actions/pulp/repository_group/export.rb +0 -51
  323. data/app/lib/katello/util/content_overrides_migrator.rb +0 -98
  324. data/app/lib/katello/util/package_clause_generator.rb +0 -77
  325. data/app/models/katello/glue/pulp/pulp_errors.rb +0 -9
  326. data/app/models/katello/glue/pulp/repo.rb +0 -353
  327. data/app/models/katello/pulp_sync_status.rb +0 -165
  328. data/app/models/katello/pulp_task_status.rb +0 -63
  329. data/app/services/katello/pulp/content.rb +0 -24
  330. data/app/services/katello/pulp/importer_comparison.rb +0 -28
  331. data/app/services/katello/pulp/repository/deb.rb +0 -61
  332. data/app/services/katello/pulp/repository/docker.rb +0 -82
  333. data/app/services/katello/pulp/repository/file.rb +0 -52
  334. data/app/services/katello/pulp/repository/yum.rb +0 -205
  335. data/app/services/katello/pulp/repository.rb +0 -327
  336. data/app/services/katello/pulp/server.rb +0 -35
  337. data/app/services/katello/pulp/simple_package.rb +0 -24
  338. data/app/services/katello/pulp/smart_proxy_repository.rb +0 -52
  339. data/lib/monkeys/fix_deb_optimized_sync.rb +0 -35
  340. data/lib/monkeys/fix_pulp_container_path.rb +0 -35
  341. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  342. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  343. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  344. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  345. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  346. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  347. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  348. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  349. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  350. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  351. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  352. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  353. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  354. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  355. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  356. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  357. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  358. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  359. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  360. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  361. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  362. data/locale/zanata.xml +0 -30
  363. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  364. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  365. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentSearch.fixtures.json +0 -33
@@ -1,32 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class AbstractRemoveContent < Pulp::AbstractAsyncTask
5
- input_format do
6
- param :pulp_id
7
- param :clauses
8
- end
9
-
10
- def invoke_external_task
11
- pulp_extensions.repository.unassociate_units(input[:pulp_id],
12
- criteria)
13
- end
14
-
15
- # @api override - pulp extension representing the content to remove
16
- # e.g. pulp.extensions.rpm
17
- def content_extension
18
- fail NotImplementedError
19
- end
20
-
21
- def criteria
22
- { type_ids: [content_extension.content_type], filters: input[:clauses] }
23
- end
24
-
25
- def external_task=(external_task_data)
26
- external_task_data = [external_task_data] if external_task_data.is_a?(Hash)
27
- super(external_task_data.map { |task| task.except('result') })
28
- end
29
- end
30
- end
31
- end
32
- end
@@ -1,18 +0,0 @@
1
- module Actions
2
- module Pulp
3
- module Repository
4
- class Clear < Actions::Pulp::AbstractAsyncTask
5
- def plan(repo, smart_proxy)
6
- plan_self(:repo_id => repo.id, :smart_proxy_id => smart_proxy.id) unless (repo.yum? || repo.empty_in_pulp?)
7
- end
8
-
9
- def invoke_external_task
10
- repo = ::Katello::Repository.find(input[:repo_id])
11
- ::Katello::RepositoryTypeManager.find(repo.content_type).content_types.map do |type|
12
- ::SmartProxy.unscoped.find(input[:smart_proxy_id]).content_service(type).remove(repo)
13
- end
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -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