katello 4.2.1 → 4.3.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 (498) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/katello.common.js +0 -67
  3. data/app/assets/javascripts/katello/common/katello.js +0 -27
  4. data/app/assets/javascripts/katello/common/vendor.js +0 -1
  5. data/app/assets/stylesheets/katello/katello.scss +0 -1
  6. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +10 -2
  7. data/app/controllers/katello/api/v2/api_controller.rb +35 -9
  8. data/app/controllers/katello/api/v2/capsule_content_controller.rb +16 -2
  9. data/app/controllers/katello/api/v2/content_view_components_controller.rb +22 -1
  10. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +65 -1
  11. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +5 -1
  12. data/app/controllers/katello/api/v2/content_views_controller.rb +13 -6
  13. data/app/controllers/katello/api/v2/debs_controller.rb +74 -1
  14. data/app/controllers/katello/api/v2/errata_controller.rb +13 -10
  15. data/app/controllers/katello/api/v2/file_units_controller.rb +1 -0
  16. data/app/controllers/katello/api/v2/generic_content_units_controller.rb +1 -1
  17. data/app/controllers/katello/api/v2/host_errata_controller.rb +46 -5
  18. data/app/controllers/katello/api/v2/host_tracer_controller.rb +2 -1
  19. data/app/controllers/katello/api/v2/module_streams_controller.rb +4 -0
  20. data/app/controllers/katello/api/v2/organizations_controller.rb +22 -7
  21. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +1 -1
  22. data/app/controllers/katello/api/v2/repositories_controller.rb +36 -19
  23. data/app/controllers/katello/api/v2/subscriptions_controller.rb +0 -8
  24. data/app/controllers/katello/api/v2/upstream_subscriptions_controller.rb +5 -1
  25. data/app/controllers/katello/concerns/api/v2/bulk_extensions.rb +40 -0
  26. data/app/controllers/katello/concerns/api/v2/host_errata_extensions.rb +4 -31
  27. data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +1 -1
  28. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +1 -1
  29. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +2 -6
  30. data/app/helpers/katello/katello_url_helper.rb +1 -1
  31. data/app/lib/actions/candlepin/abstract_async_task.rb +6 -3
  32. data/app/lib/actions/candlepin/async_hypervisors.rb +12 -8
  33. data/app/lib/actions/katello/applicability/hosts/bulk_generate.rb +10 -1
  34. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +3 -3
  35. data/app/lib/actions/katello/cdn_configuration/update.rb +38 -0
  36. data/app/lib/actions/katello/content_view/remove.rb +18 -7
  37. data/app/lib/actions/katello/content_view_version/destroy.rb +2 -2
  38. data/app/lib/actions/katello/content_view_version/republish_repositories.rb +1 -1
  39. data/app/lib/actions/katello/repository/clone_contents.rb +1 -2
  40. data/app/lib/actions/katello/repository/destroy.rb +21 -5
  41. data/app/lib/actions/katello/repository/fetch_pxe_files.rb +1 -1
  42. data/app/lib/actions/katello/repository/finish_upload.rb +1 -1
  43. data/app/lib/actions/katello/repository/import_upload.rb +1 -1
  44. data/app/lib/actions/katello/repository/index_content.rb +19 -6
  45. data/app/lib/actions/katello/repository/metadata_generate.rb +2 -0
  46. data/app/lib/actions/katello/repository/multi_clone_contents.rb +1 -1
  47. data/app/lib/actions/katello/repository/remove_content.rb +1 -1
  48. data/app/lib/actions/katello/repository/sync.rb +3 -7
  49. data/app/lib/actions/katello/repository_set/scan_cdn.rb +0 -4
  50. data/app/lib/actions/middleware/record_smart_proxy_sync_history.rb +1 -1
  51. data/app/lib/actions/pulp/orphan_cleanup/remove_unneeded_repos.rb +1 -1
  52. data/app/lib/actions/pulp/repository/clear.rb +1 -1
  53. data/app/lib/actions/pulp3/abstract_async_task.rb +10 -1
  54. data/app/lib/actions/pulp3/capsule_content/generate_metadata.rb +13 -18
  55. data/app/lib/actions/pulp3/capsule_content/refresh_distribution.rb +1 -11
  56. data/app/lib/actions/pulp3/content_view_version/create_export_history.rb +1 -1
  57. data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +3 -1
  58. data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +25 -42
  59. data/app/lib/actions/pulp3/orchestration/repository/sync.rb +8 -1
  60. data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +3 -3
  61. data/app/lib/actions/pulp3/repository/commit_upload.rb +1 -1
  62. data/app/lib/actions/pulp3/repository/import_upload.rb +8 -4
  63. data/app/lib/actions/pulp3/repository/multi_copy_content.rb +1 -1
  64. data/app/lib/actions/pulp3/repository/multi_copy_units.rb +1 -1
  65. data/app/lib/actions/pulp3/repository/presenters/abstract_sync_presenter.rb +18 -0
  66. data/app/lib/actions/pulp3/repository/presenters/content_unit_presenter.rb +7 -2
  67. data/app/lib/actions/pulp3/repository/presenters/repair_presenter.rb +6 -1
  68. data/app/lib/actions/pulp3/repository/save_artifact.rb +14 -4
  69. data/app/lib/katello/errors.rb +2 -0
  70. data/app/lib/katello/resources/candlepin/consumer.rb +0 -20
  71. data/app/lib/katello/resources/candlepin/proxy.rb +8 -2
  72. data/app/lib/katello/resources/candlepin/upstream_consumer.rb +2 -0
  73. data/app/lib/katello/resources/cdn/katello_cdn.rb +68 -0
  74. data/app/lib/katello/resources/cdn.rb +61 -29
  75. data/app/lib/katello/util/cdn_var_substitutor.rb +15 -9
  76. data/app/lib/katello/util/package.rb +22 -0
  77. data/app/lib/katello/util/path_with_substitutions.rb +12 -14
  78. data/app/models/katello/activation_key.rb +10 -0
  79. data/app/models/katello/ansible_collection.rb +1 -1
  80. data/app/models/katello/authorization/repository.rb +4 -4
  81. data/app/models/katello/candlepin/repository_mapper.rb +5 -1
  82. data/app/models/katello/cdn_configuration.rb +32 -0
  83. data/app/models/katello/concerns/content_facet_host_extensions.rb +40 -0
  84. data/app/models/katello/concerns/host_managed_extensions.rb +28 -2
  85. data/app/models/katello/concerns/hostgroup_extensions.rb +1 -1
  86. data/app/models/katello/concerns/organization_extensions.rb +3 -1
  87. data/app/models/katello/concerns/pulp_database_unit.rb +15 -5
  88. data/app/models/katello/concerns/remote_execution_provider_extensions.rb +9 -0
  89. data/app/models/katello/concerns/setting_extensions.rb +1 -1
  90. data/app/models/katello/concerns/smart_proxy_extensions.rb +4 -3
  91. data/app/models/katello/content_credential.rb +4 -0
  92. data/app/models/katello/content_facet_applicable_deb.rb +7 -0
  93. data/app/models/katello/content_view.rb +24 -1
  94. data/app/models/katello/content_view_component.rb +4 -0
  95. data/app/models/katello/content_view_erratum_filter.rb +2 -0
  96. data/app/models/katello/content_view_filter.rb +1 -1
  97. data/app/models/katello/content_view_package_filter_rule.rb +2 -1
  98. data/app/models/katello/content_view_version.rb +30 -1
  99. data/app/models/katello/deb.rb +71 -0
  100. data/app/models/katello/erratum.rb +13 -1
  101. data/app/models/katello/generic_content_unit.rb +3 -1
  102. data/app/models/katello/glue/pulp/repos.rb +2 -2
  103. data/app/models/katello/host/content_facet.rb +23 -2
  104. data/app/models/katello/host/subscription_facet.rb +1 -1
  105. data/app/models/katello/host_tracer.rb +21 -2
  106. data/app/models/katello/installed_deb.rb +1 -1
  107. data/app/models/katello/module_stream.rb +4 -0
  108. data/app/models/katello/ping.rb +20 -4
  109. data/app/models/katello/product.rb +7 -5
  110. data/app/models/katello/provider.rb +1 -24
  111. data/app/models/katello/repository.rb +37 -10
  112. data/app/models/katello/root_repository.rb +28 -14
  113. data/app/models/setting/content.rb +8 -13
  114. data/app/services/katello/applicability/applicable_content_helper.rb +20 -0
  115. data/app/services/katello/organization_creator.rb +8 -0
  116. data/app/services/katello/pulp3/api/ansible_collection.rb +0 -40
  117. data/app/services/katello/pulp3/api/apt.rb +0 -47
  118. data/app/services/katello/pulp3/api/content_guard.rb +1 -1
  119. data/app/services/katello/pulp3/api/core.rb +28 -23
  120. data/app/services/katello/pulp3/api/docker.rb +0 -50
  121. data/app/services/katello/pulp3/api/file.rb +0 -48
  122. data/app/services/katello/pulp3/api/generic.rb +1 -44
  123. data/app/services/katello/pulp3/api/yum.rb +4 -44
  124. data/app/services/katello/pulp3/generic_content_unit.rb +8 -4
  125. data/app/services/katello/pulp3/repository/ansible_collection.rb +4 -0
  126. data/app/services/katello/pulp3/repository/apt.rb +3 -3
  127. data/app/services/katello/pulp3/repository/generic.rb +10 -65
  128. data/app/services/katello/pulp3/repository/yum.rb +10 -0
  129. data/app/services/katello/pulp3/repository.rb +47 -21
  130. data/app/services/katello/pulp3/repository_mirror.rb +30 -11
  131. data/app/services/katello/pulp3/rpm.rb +2 -32
  132. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +7 -8
  133. data/app/services/katello/pulp3/smart_proxy_repository.rb +1 -1
  134. data/app/services/katello/registration_manager.rb +2 -0
  135. data/app/services/katello/repository_type.rb +103 -15
  136. data/app/services/katello/repository_type_manager.rb +14 -8
  137. data/app/services/katello/ui_notifications/subscriptions/manifest_expired_warning.rb +1 -1
  138. data/app/services/katello/upstream_connection_checker.rb +1 -0
  139. data/app/views/foreman/job_templates/resolve_traces.erb +25 -0
  140. data/app/views/foreman/job_templates/resolve_traces_-_katello_ansible_default.erb +28 -0
  141. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
  142. data/app/views/katello/api/v2/common/_metadata.json.rabl +1 -0
  143. data/app/views/katello/api/v2/content_facet/base.json.rabl +3 -1
  144. data/app/views/katello/api/v2/content_facet/show.json.rabl +2 -1
  145. data/app/views/katello/api/v2/content_view_components/show.json.rabl +4 -0
  146. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +7 -0
  147. data/app/views/katello/api/v2/content_views/base.json.rabl +12 -8
  148. data/app/views/katello/api/v2/content_views/index.json.rabl +1 -0
  149. data/app/views/katello/api/v2/content_views/permissions.rabl +8 -0
  150. data/app/views/katello/api/v2/debs/base.json.rabl +5 -0
  151. data/app/views/katello/api/v2/errata/index.json.rabl +4 -0
  152. data/app/views/katello/api/v2/generic_content_units/base.json.rabl +2 -0
  153. data/app/views/katello/api/v2/generic_content_units/show.json.rabl +7 -0
  154. data/app/views/katello/api/v2/host_tracer/base.json.rabl +1 -0
  155. data/app/views/katello/api/v2/module_streams/index.json.rabl +4 -0
  156. data/app/views/katello/api/v2/organizations/cdn_configuration.rabl +1 -0
  157. data/app/views/katello/api/v2/organizations/show.json.rabl +7 -0
  158. data/app/views/katello/api/v2/repositories/base.json.rabl +10 -17
  159. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +2 -6
  160. data/config/routes/api/v2.rb +13 -0
  161. data/config/routes/overrides.rb +2 -0
  162. data/config/routes.rb +14 -2
  163. data/db/migrate/20140110000001_update_environments_add_katello_id.rb +1 -3
  164. data/db/migrate/20140610154745_content_view_puppet_environment_id.rb +0 -35
  165. data/db/migrate/20190802112101_add_applicable_debs.rb +16 -0
  166. data/db/migrate/20210201163238_migrate_background_download_policy_to_migrate.rb +2 -2
  167. data/db/migrate/20210909140337_add_last_indexed_to_repos.rb +5 -0
  168. data/db/migrate/20210910190324_move_background_settings_to_immediate.rb +25 -0
  169. data/db/migrate/20211006161617_add_filename_to_katello_generic_content_units.rb +5 -0
  170. data/db/migrate/20211019192121_create_cdn_configuration.katello.rb +30 -0
  171. data/db/migrate/20211025181315_add_additional_metadata_to_katello_generic_content_units.rb +5 -0
  172. data/engines/bastion/README.md +15 -0
  173. data/engines/bastion/app/assets/javascripts/bastion/components/nutupane.factory.js +2 -2
  174. data/engines/bastion/config/routes.rb +2 -0
  175. data/engines/bastion/vendor/assets/javascripts/bastion/angular/angular.js +3 -3
  176. data/engines/bastion/vendor/assets/javascripts/bastion/angular-sanitize/angular-sanitize.js +1 -1
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +3 -0
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/registration.html +1 -1
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-applicable.controller.js +44 -0
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs.controller.js +1 -1
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-applicable.html +70 -0
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs.html +1 -1
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.routes.js +10 -0
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +5 -0
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +25 -9
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +2 -2
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +0 -9
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.controller.js +22 -2
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.routes.js +1 -1
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb.controller.js +22 -2
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-content-views.html +1 -1
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-info.html +36 -4
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb-repositories.html +1 -1
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/views/deb.html +4 -4
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/views/debs.html +31 -4
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/generic-content/generic-content.factory.js +21 -0
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/generic-content/generic-content.module.js +17 -0
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package.controller.js +4 -0
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/views/package-info.html +3 -3
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +6 -2
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +30 -2
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +1 -13
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +32 -9
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +15 -4
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +32 -19
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +28 -28
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-generic-content.html +57 -0
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +46 -4
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +57 -27
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.module.js +1 -0
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +16 -7
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +30 -4
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +2 -1
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +8 -0
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +6 -2
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +1 -1
  217. data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -1
  218. data/lib/katello/engine.rb +0 -1
  219. data/lib/katello/permission_creator.rb +4 -3
  220. data/lib/katello/permissions/host_permissions.rb +1 -0
  221. data/lib/katello/permissions/organization_permissions.rb +2 -1
  222. data/lib/katello/plugin.rb +15 -11
  223. data/lib/katello/repository_types/ansible_collection.rb +13 -1
  224. data/lib/katello/repository_types/deb.rb +13 -0
  225. data/lib/katello/repository_types/docker.rb +13 -1
  226. data/lib/katello/repository_types/file.rb +13 -0
  227. data/lib/katello/repository_types/ostree.rb +48 -4
  228. data/lib/katello/repository_types/python.rb +26 -12
  229. data/lib/katello/repository_types/yum.rb +16 -1
  230. data/lib/katello/tasks/repository.rake +3 -12
  231. data/lib/katello/tasks/reset.rake +4 -5
  232. data/lib/katello/version.rb +1 -1
  233. data/package.json +3 -2
  234. data/webpack/__mocks__/react-intl/index.js +4 -0
  235. data/webpack/components/ActionableDetail.js +23 -3
  236. data/webpack/components/AddedStatusLabel.js +1 -1
  237. data/webpack/components/Bookmark/AddBookmarkModal.js +96 -0
  238. data/webpack/components/Bookmark/Bookmark.scss +28 -0
  239. data/webpack/components/Bookmark/BookmarkActions.js +24 -0
  240. data/webpack/components/Bookmark/BookmarkConstants.js +3 -0
  241. data/webpack/components/Bookmark/BookmarkSelectors.js +15 -0
  242. data/webpack/components/Bookmark/index.js +94 -0
  243. data/webpack/components/EditableSwitch.js +6 -1
  244. data/webpack/components/EditableTextInput/EditableTextInput.js +41 -13
  245. data/webpack/components/Errata/index.js +69 -0
  246. data/webpack/components/ErratumTypeLabel.js +31 -0
  247. data/webpack/components/Loading.js +5 -2
  248. data/webpack/components/RoutedTabs/__tests__/RoutedTabs.test.js +5 -11
  249. data/webpack/components/RoutedTabs/index.js +77 -2
  250. data/webpack/components/Search/Search.js +67 -80
  251. data/webpack/components/Search/__tests__/search.test.js +8 -26
  252. data/webpack/components/SelectAllCheckbox/SelectAllCheckbox.scss +3 -0
  253. data/webpack/components/SelectAllCheckbox/index.js +126 -0
  254. data/webpack/components/SelectableDropdown/SelectableDropdown.js +7 -2
  255. data/webpack/components/Table/EmptyStateMessage.js +38 -17
  256. data/webpack/components/Table/MainTable.js +49 -10
  257. data/webpack/components/Table/MainTable.scss +11 -0
  258. data/webpack/components/Table/PageControls.js +45 -0
  259. data/webpack/components/Table/TableHooks.js +230 -0
  260. data/webpack/components/Table/TableWrapper.js +221 -50
  261. data/webpack/components/Table/helpers.js +17 -0
  262. data/webpack/components/TypeAhead/TypeAhead.js +74 -58
  263. data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.js +25 -10
  264. data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.scss +9 -8
  265. data/webpack/components/TypeAhead/pf4Search/TypeAheadItems.js +2 -2
  266. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +32 -22
  267. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard.js +101 -0
  268. data/webpack/components/extensions/HostDetails/Cards/__tests__/contentViewDetailsCard.test.js +53 -0
  269. data/webpack/components/extensions/HostDetails/HostErrata/HostErrataActions.js +47 -0
  270. data/webpack/components/extensions/HostDetails/HostErrata/HostErrataConstants.js +32 -0
  271. data/webpack/components/extensions/HostDetails/HostErrata/HostErrataSelectors.js +16 -0
  272. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/EmptyPage.js +19 -0
  273. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +17 -0
  274. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +7 -0
  275. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/helpers.js +3 -0
  276. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/index.js +40 -0
  277. data/webpack/components/extensions/HostDetails/Tabs/EnableTracerEmptyState.js +42 -0
  278. data/webpack/components/extensions/HostDetails/Tabs/EnableTracerModal.js +118 -0
  279. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab.js +347 -0
  280. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab.scss +16 -0
  281. data/webpack/components/extensions/HostDetails/Tabs/ErratumExpansionContents.js +60 -0
  282. data/webpack/components/extensions/HostDetails/Tabs/ErratumExpansionDetail.js +69 -0
  283. data/webpack/components/extensions/HostDetails/Tabs/HostTracesActions.js +19 -0
  284. data/webpack/components/extensions/HostDetails/Tabs/HostTracesConstants.js +2 -0
  285. data/webpack/components/extensions/HostDetails/Tabs/HostTracesSelectors.js +19 -0
  286. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +56 -0
  287. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +5 -0
  288. data/webpack/components/extensions/HostDetails/Tabs/TracesTab.js +188 -0
  289. data/webpack/components/extensions/HostDetails/Tabs/TracesTab.scss +12 -0
  290. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errata.fixtures.json +67 -0
  291. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +785 -0
  292. data/webpack/components/extensions/HostDetails/Tabs/__tests__/resolveTraces.fixtures.json +35 -0
  293. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracerEmptyTraceResults.fixtures.json +7 -0
  294. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracerEnableJobInvocation.fixtures.json +35 -0
  295. data/webpack/components/extensions/HostDetails/Tabs/__tests__/traces.fixtures.json +44 -0
  296. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +386 -0
  297. data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +20 -0
  298. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +1 -1
  299. data/webpack/components/extensions/RegistrationCommands/index.js +1 -1
  300. data/webpack/components/pf3Table/components/Table.js +1 -1
  301. data/webpack/components/pf3Table/components/__snapshots__/Table.test.js.snap +3 -3
  302. data/webpack/containers/Application/Routes.js +3 -3
  303. data/webpack/containers/Application/config.js +21 -6
  304. data/webpack/containers/Application/overrides.scss +34 -3
  305. data/webpack/{fills_index.js → global_index.js} +11 -2
  306. data/webpack/global_test_setup.js +6 -1
  307. data/webpack/redux/actions/RedHatRepositories/helpers.js +4 -4
  308. data/webpack/scenes/AnsibleCollections/AnsibleCollectionsTableSchema.js +1 -1
  309. data/webpack/scenes/Content/ContentActions.js +31 -0
  310. data/webpack/scenes/Content/ContentConfig.js +138 -0
  311. data/webpack/scenes/Content/ContentConstants.js +7 -0
  312. data/webpack/scenes/Content/ContentPage.js +89 -0
  313. data/webpack/scenes/Content/ContentSelectors.js +43 -0
  314. data/webpack/scenes/Content/Details/ContentCounts.js +42 -0
  315. data/webpack/scenes/Content/Details/ContentDetails.js +66 -0
  316. data/webpack/scenes/Content/Details/ContentInfo.js +60 -0
  317. data/webpack/scenes/Content/Details/ContentRepositories.js +78 -0
  318. data/webpack/scenes/Content/Details/__tests__/ansibleCollectionDetails.fixtures.json +20 -0
  319. data/webpack/scenes/Content/Details/__tests__/ansibleCollectionRepositoryDetails.fixtures.json +71 -0
  320. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +152 -0
  321. data/webpack/scenes/Content/Details/__tests__/pythonPackageDetails.fixtures.json +20 -0
  322. data/webpack/scenes/Content/Details/__tests__/pythonPackageRepositoryDetails.fixtures.json +71 -0
  323. data/webpack/scenes/Content/Details/index.js +4 -0
  324. data/webpack/scenes/Content/Table/ContentTable.js +90 -0
  325. data/webpack/scenes/Content/Table/index.js +3 -0
  326. data/webpack/scenes/Content/__tests__/ansibleCollections.fixtures.json +50 -0
  327. data/webpack/scenes/Content/__tests__/contentTable.test.js +89 -0
  328. data/webpack/scenes/Content/__tests__/contentTypes.fixtures.json +66 -0
  329. data/webpack/scenes/Content/__tests__/pythonPackages.fixtures.json +30 -0
  330. data/webpack/scenes/Content/index.js +4 -0
  331. data/webpack/scenes/ContentViews/ContentViewSelectors.js +5 -6
  332. data/webpack/scenes/ContentViews/ContentViewsActions.js +13 -8
  333. data/webpack/scenes/ContentViews/ContentViewsConstants.js +31 -4
  334. data/webpack/scenes/ContentViews/ContentViewsPage.js +4 -0
  335. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +19 -7
  336. data/webpack/scenes/ContentViews/Copy/CopyContentViewModal.js +7 -5
  337. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +1 -1
  338. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +7 -3
  339. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +1 -2
  340. data/webpack/scenes/ContentViews/Delete/CVDeleteContext.js +4 -0
  341. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +170 -0
  342. data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +108 -0
  343. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionFinish.js +69 -0
  344. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignActivationKeysForm.js +121 -0
  345. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignHostsForm.js +120 -0
  346. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +62 -0
  347. data/webpack/scenes/ContentViews/Delete/Steps/CVEnvironmentSelectionForm.scss +4 -0
  348. data/webpack/scenes/ContentViews/Delete/__tests__/CvData.fixtures.json +259 -0
  349. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +155 -0
  350. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +241 -0
  351. data/webpack/scenes/ContentViews/Delete/__tests__/cvDetails.fixtures.json +248 -0
  352. data/webpack/scenes/ContentViews/Delete/__tests__/cvVersionsData.fixtures.json +865 -0
  353. data/webpack/scenes/ContentViews/Delete/__tests__/envPathData.fixtures.json +424 -0
  354. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +15 -7
  355. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +123 -0
  356. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +1 -1
  357. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js +8 -5
  358. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +109 -51
  359. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.fixtures.json +21 -6
  360. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +80 -16
  361. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +248 -3
  362. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +141 -0
  363. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +36 -54
  364. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +20 -4
  365. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +63 -38
  366. data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +3 -4
  367. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositorySelection.js +65 -0
  368. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +260 -0
  369. data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +54 -0
  370. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +202 -0
  371. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +291 -0
  372. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +441 -0
  373. data/webpack/scenes/ContentViews/Details/Filters/CVFilterDetailType.js +62 -3
  374. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +302 -0
  375. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +186 -23
  376. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +144 -19
  377. data/webpack/scenes/ContentViews/Details/Filters/ContentType.js +2 -0
  378. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetails.js +44 -13
  379. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +81 -17
  380. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +43 -43
  381. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +96 -0
  382. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContent.fixtures.json +166 -0
  383. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +90 -0
  384. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentSearch.fixtures.json +33 -0
  385. data/webpack/scenes/ContentViews/Details/Filters/Rules/ContainerTag/AddEditContainerTagRuleModal.js +91 -0
  386. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +237 -0
  387. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.fixtures.json +42 -0
  388. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +265 -0
  389. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +218 -11
  390. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +517 -0
  391. data/webpack/scenes/ContentViews/Details/Filters/__tests__/allFilterErrata.fixtures.json +122 -0
  392. data/webpack/scenes/ContentViews/Details/Filters/__tests__/allFilterModulesStreams.fixtures.json +60 -0
  393. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +359 -0
  394. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetail.fixtures.json +88 -102
  395. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +34 -9
  396. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.fixtures.json +148 -132
  397. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +25 -7
  398. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvAllRepos.fixtures.json +150 -0
  399. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +74 -0
  400. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +404 -0
  401. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +89 -0
  402. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +383 -0
  403. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +375 -0
  404. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterFixutre.fixture.json +282 -0
  405. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +392 -0
  406. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +97 -0
  407. data/webpack/scenes/ContentViews/Details/Filters/index.js +26 -0
  408. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +68 -79
  409. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +1 -2
  410. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +163 -0
  411. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromoteSelectors.js +16 -0
  412. data/webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js +9 -1
  413. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +88 -74
  414. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +8 -9
  415. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.fixtures.json +3 -3
  416. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionContent.js +30 -9
  417. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +1 -1
  418. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.js +9 -5
  419. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.scss +2 -2
  420. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +132 -14
  421. data/webpack/scenes/ContentViews/Details/Versions/Delete/DeleteContext.js +4 -0
  422. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +176 -0
  423. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +127 -0
  424. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +131 -0
  425. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +128 -0
  426. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionDeleteFinish.js +94 -0
  427. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +67 -0
  428. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedActivationKeys.fixture.json +53 -0
  429. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +153 -0
  430. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvDropDownOptionsResponse.fixture.json +192 -0
  431. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +313 -0
  432. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemoveResponse.fixture.json +74 -0
  433. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/versionRemoveEnvPaths.fixtures.json +352 -0
  434. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/versionsResponseData.fixtures.json +583 -0
  435. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +96 -0
  436. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +97 -0
  437. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +332 -0
  438. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.js +128 -0
  439. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss +44 -0
  440. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +66 -0
  441. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +125 -0
  442. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionRepositoryCell.js +115 -0
  443. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionAnsibleCollections.fixtures.json +449 -0
  444. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionComponent.fixtures.json +753 -0
  445. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDebPackages.fixtures.json +58 -0
  446. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.fixtures.json +158 -0
  447. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +289 -0
  448. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsCounts.fixtures.json +73 -0
  449. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +44 -0
  450. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDockerTags.fixtures.json +3024 -0
  451. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionErrata.fixtures.json +201 -0
  452. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionFiles.fixtures.json +22 -0
  453. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionModuleStreams.fixtures.json +196 -0
  454. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionRepositories.fixtures.json +1000 -0
  455. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionRpmPackageGroups.fixtures.json +44 -0
  456. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionRpmPackages.fixtures.json +394 -0
  457. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.fixtures.json +4 -4
  458. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +95 -26
  459. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionsWithTask.fixtures.json +2 -2
  460. data/webpack/scenes/ContentViews/Details/Versions/index.js +25 -0
  461. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +20 -16
  462. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +3 -5
  463. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +106 -64
  464. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +25 -4
  465. data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +1 -1
  466. data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +4 -1
  467. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +29 -36
  468. data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +10 -0
  469. data/webpack/scenes/ContentViews/components/CVBreadCrumb.js +117 -0
  470. data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +59 -0
  471. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +4 -3
  472. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +30 -11
  473. data/webpack/scenes/ContentViews/components/TaskPresenter/TaskPresenter.js +1 -1
  474. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +38 -1
  475. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +79 -0
  476. data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +107 -0
  477. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +59 -0
  478. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsResponse.fixtures.json +116 -0
  479. data/webpack/scenes/ContentViews/expansions/__tests__/relatedCompositeCvs.fixtures.json +4 -0
  480. data/webpack/scenes/ContentViews/helpers.js +1 -0
  481. data/webpack/scenes/RedHatRepositories/components/RepositorySetRepository/RepositorySetRepository.js +1 -1
  482. data/webpack/scenes/RedHatRepositories/components/SearchBar.js +4 -3
  483. data/webpack/scenes/SmartProxy/SmartProxyContentTable.js +1 -1
  484. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +17 -9
  485. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +3 -3
  486. data/webpack/test-utils/nockWrapper.js +20 -3
  487. data/webpack/utils/helpers.js +16 -2
  488. data/webpack/utils/useDebounce.js +20 -0
  489. metadata +232 -54
  490. data/app/assets/javascripts/katello/widgets/tabs.js +0 -13
  491. data/app/assets/stylesheets/katello/widgets/tabs.scss +0 -69
  492. data/app/lib/actions/katello/provider/update.rb +0 -38
  493. data/webpack/components/RoutedTabs/RoutedTabs.js +0 -90
  494. data/webpack/components/Search/Search.test.js +0 -23
  495. data/webpack/components/Search/__snapshots__/Search.test.js.snap +0 -21
  496. data/webpack/components/extensions/HostDetails/Tabs/ContentTab.js +0 -42
  497. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.test.js +0 -145
  498. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionPackages.js +0 -0
@@ -69,6 +69,9 @@
69
69
  name="url"
70
70
  ng-model="repository.url"
71
71
  type="text"/>
72
+ <p class="help-block" ng-show="urlDescription" translate>
73
+ {{urlDescription}}
74
+ </p>
72
75
  <p class="help-block" ng-show="repository.content_type === 'docker'" translate>
73
76
  URL of the registry you want to sync. Example: https://registry-1.docker.io/ or https://quay.io/
74
77
  </p>
@@ -77,6 +80,11 @@
77
80
  uib-popover-html="collectionURLPopover" popover-class="popover-large" popover-trigger="'outsideClick'" popover-append-to-body="true" popover-title="Upstream URL">
78
81
  </a>
79
82
  </p>
83
+ <p class="help-block" ng-show="repository.content_type === 'deb'" translate>
84
+ URL to the repository base. Example: http://ftp.de.debian.org/debian/ <a class="fa fa-question-circle" ng-show="repository.content_type === 'deb'"
85
+ uib-popover-html="debURLPopover" popover-class="popover-large" popover-trigger="'outsideClick'" popover-append-to-body="true" popover-title="Upstream URL">
86
+ </a>
87
+ </p>
80
88
 
81
89
  </div>
82
90
 
@@ -116,23 +124,37 @@
116
124
  </p>
117
125
  </div>
118
126
 
119
- <div ng-show="repository.content_type === 'deb'" bst-form-group label="{{ 'Releases' | translate }}">
127
+ <div ng-show="repository.content_type === 'deb'" bst-form-group label="{{ 'Releases/Distributions' | translate }}">
120
128
  <input id="deb_releases"
121
129
  name="deb_releases"
122
130
  ng-model="repository.deb_releases"
123
131
  type="text"/>
124
132
  <p class="help-block" translate>
125
- Whitespace-separated list of releases (suite or codename) to sync from. Default: stable
133
+ Whitespace-separated list of releases/distributions to sync (required for syncing). Example: buster <a class="fa fa-question-circle" ng-show="repository.content_type === 'deb'"
134
+ uib-popover-html="distPopover" popover-class="popover-large" popover-trigger="'outsideClick'" popover-append-to-body="true" popover-title="Releases/Distributions">
135
+ </a>
126
136
  </p>
137
+ <div ng-hide="validateDebAttrList('deb_releases')">
138
+ <br />
139
+ <div class="alert alert-danger" ><strong>Warning. </strong>Are you sure you want to add a comma in this whitespace separated list of distributions?</div>
140
+ </div>
141
+
127
142
  </div>
143
+
128
144
  <div ng-show="repository.content_type === 'deb'" bst-form-group label="{{ 'Components' | translate }}">
129
- <input id="deb_comonents"
145
+ <input id="deb_components"
130
146
  name="deb_components"
131
147
  ng-model="repository.deb_components"
132
148
  type="text"/>
133
149
  <p class="help-block" translate>
134
- Whitespace-separated list of components to sync from (leave clear to sync all). Example: main
150
+ Whitespace-separated list of components to sync (leave clear to sync all). Example: main <a class="fa fa-question-circle" ng-show="repository.content_type === 'deb'"
151
+ uib-popover-html="componentPopover" popover-class="popover-large" popover-trigger="'outsideClick'" popover-append-to-body="true" popover-title="Components">
152
+ </a>
135
153
  </p>
154
+ <div ng-hide="validateDebAttrList('deb_components')">
155
+ <br />
156
+ <div class="alert alert-danger" ><strong>Warning. </strong>Are you sure you want to add a comma in this whitespace separated list of components?</div>
157
+ </div>
136
158
  </div>
137
159
  <div ng-show="repository.content_type === 'deb'" bst-form-group label="{{ 'Architectures' | translate }}">
138
160
  <input id="deb_architectures"
@@ -140,30 +162,16 @@
140
162
  ng-model="repository.deb_architectures"
141
163
  type="text"/>
142
164
  <p class="help-block" translate>
143
- Whitespace-separated list of processor architectures to filter the sync by. Example: amd64
144
- </p>
145
- </div>
146
-
147
- <div bst-form-group label="{{ 'Upstream Sync Policy' | translate }}" ng-if="repository.content_type === 'ostree'">
148
- <select required
149
- id="ostree_upstream_sync_policy"
150
- name="ostree_upstream_sync_policy"
151
- ng-model="repository.ostree_upstream_sync_policy"
152
- ng-options="id as name for (id, name) in ostreeUpstreamSyncPolicies">
153
- </select>
154
-
155
- <input id="ostree_upstream_sync_depth"
156
- name="ostree_upstream_sync_depth"
157
- ng-model="repository.ostree_upstream_sync_depth"
158
- type="number"
159
- ng-disabled="repository.ostree_upstream_sync_policy !== 'custom'"/>
160
- <p class="help-block" translate>
161
- Choose one of the policy selections for downloading ostree content from upstream url during synchronization. Choose "Latest" for downloading the latest version of the upstream branch. Choose "All History" to download all available versions of the upstream repository (this may take a large amount of space). Choose "Custom Depth" and provide an number to indicate the number of prior versions of the upstream branch to download.
165
+ Whitespace-separated list of processor architectures to sync (leave clear to sync all). Example: amd64 <a class="fa fa-question-circle" ng-show="repository.content_type === 'deb'"
166
+ uib-popover-html="archPopover" popover-class="popover-large" popover-trigger="'outsideClick'" popover-append-to-body="true" popover-title="Architectures">
167
+ </a>
162
168
  </p>
163
-
169
+ <div ng-hide="validateDebAttrList('deb_architectures')">
170
+ <br />
171
+ <div class="alert alert-danger" ><strong>Warning. </strong>Are you sure you want to add a comma in this whitespace separated list of architectures?</div>
172
+ </div>
164
173
  </div>
165
174
 
166
-
167
175
  <div bst-form-group label="{{ 'Upstream Repository Name' | translate }}" ng-if="repository.content_type === 'docker'">
168
176
  <input id="docker_upstream_name"
169
177
  name="docker_upstream_name"
@@ -229,7 +237,29 @@
229
237
  </p>
230
238
  </div>
231
239
 
232
- <div bst-form-group label="{{ 'Download Policy' | translate }}" ng-if="repository.content_type === 'yum'">
240
+ <div ng-repeat="option in genericRemoteOptions" ng-if="repository.generic_remote_options !== []">
241
+ <div ng-if='option.input_type=="text"' bst-form-group label="{{ option.title | translate }}">
242
+ <input
243
+ type="option.input_type"
244
+ name="option_name"
245
+ ng-model="genericRemoteOptions[$index].value"/>
246
+ <p class="help-block" translate>
247
+ {{option.description}}
248
+ </p>
249
+ </div>
250
+ <div ng-if='option.input_type=="textarea"' bst-form-group label="{{ option.title | translate }}">
251
+ <textarea
252
+ id="option-{{$index}}"
253
+ name="option-{{$index}}"
254
+ ng-model="genericRemoteOptions[$index].value"
255
+ type="text"/>
256
+ <p class="help-block" translate>
257
+ {{option.description}}
258
+ </p>
259
+ </div>
260
+ </div>
261
+
262
+ <div bst-form-group label="{{ 'Download Policy' | translate }}" ng-if="repository.content_type === 'yum' || repository.content_type === 'deb'">
233
263
  <select id="download_policy"
234
264
  name="download_policy"
235
265
  ng-model="repository.download_policy"
@@ -299,7 +329,7 @@
299
329
  </p>
300
330
  </div>
301
331
 
302
- <div class="checkbox" ng-hide="repository.content_type === 'ostree' || repository.content_type === 'docker' || repository.content_type === 'ansible_collection'">
332
+ <div class="checkbox" ng-hide="repository.content_type === 'docker' || repository.content_type === 'ansible_collection'">
303
333
  <label>
304
334
  <input id="unprotected" name="unprotected" ng-model="repository.unprotected" type="checkbox"/>
305
335
  <span translate>Publish via HTTP</span>
@@ -20,6 +20,7 @@ angular.module('Bastion.repositories', [
20
20
  'Bastion.docker-manifests',
21
21
  'Bastion.docker-manifest-lists',
22
22
  'Bastion.files',
23
+ 'Bastion.generic-content',
23
24
  'Bastion.debs'
24
25
  ]);
25
26
 
@@ -91,7 +91,7 @@
91
91
  }
92
92
  })
93
93
  .state('product.repository.manage-content.docker-manifests', {
94
- url: '/content/docker_manifests',
94
+ url: '/docker_manifests',
95
95
  permission: 'view_products',
96
96
  templateUrl: 'products/details/repositories/details/views/repository-manage-docker-manifests.html',
97
97
  ncyBreadcrumb: {
@@ -100,7 +100,7 @@
100
100
  }
101
101
  })
102
102
  .state('product.repository.manage-content.docker-tags', {
103
- url: '/content/docker_tags',
103
+ url: '/docker_tags',
104
104
  permission: 'view_products',
105
105
  templateUrl: 'products/details/repositories/details/views/repository-manage-docker-tags.html',
106
106
  ncyBreadcrumb: {
@@ -109,7 +109,7 @@
109
109
  }
110
110
  })
111
111
  .state('product.repository.manage-content.docker-manifest-lists', {
112
- url: '/content/docker_manifest_lists',
112
+ url: '/docker_manifest_lists',
113
113
  permission: 'view_products',
114
114
  templateUrl: 'products/details/repositories/details/views/repository-manage-docker-manifest-lists.html',
115
115
  ncyBreadcrumb: {
@@ -118,7 +118,7 @@
118
118
  }
119
119
  })
120
120
  .state('product.repository.manage-content.files', {
121
- url: '/content/files',
121
+ url: '/files',
122
122
  permission: 'view_products',
123
123
  templateUrl: 'products/details/repositories/details/views/repository-manage-files.html',
124
124
  ncyBreadcrumb: {
@@ -127,7 +127,7 @@
127
127
  }
128
128
  })
129
129
  .state('product.repository.manage-content.ostree-branches', {
130
- url: '/content/ostree_branches',
130
+ url: '/ostree_branches',
131
131
  permission: 'view_products',
132
132
  templateUrl: 'products/details/repositories/details/views/repository-manage-ostree-branches.html',
133
133
  ncyBreadcrumb: {
@@ -145,7 +145,7 @@
145
145
  }
146
146
  })
147
147
  .state('product.repository.manage-content.debs', {
148
- url: '/content/debs',
148
+ url: '/debs',
149
149
  permission: 'view_products',
150
150
  templateUrl: 'products/details/repositories/details/views/repository-manage-debs.html',
151
151
  ncyBreadcrumb: {
@@ -154,13 +154,22 @@
154
154
  }
155
155
  })
156
156
  .state('product.repository.manage-content.ansible-collections', {
157
- url: '/content/ansible_collections',
157
+ url: '/ansible_collections',
158
158
  permission: 'view_products',
159
159
  templateUrl: 'products/details/repositories/details/views/repository-manage-ansible-collections.html',
160
160
  ncyBreadcrumb: {
161
161
  label: "{{'Ansible Collections' | translate }}",
162
162
  parent: 'product.repository.info'
163
163
  }
164
+ })
165
+ .state('product.repository.manage-content.generic-content', {
166
+ url: '/:contentTypeLabel',
167
+ permission: 'view_products',
168
+ templateUrl: 'products/details/repositories/details/views/repository-manage-generic-content.html',
169
+ ncyBreadcrumb: {
170
+ label: "{{ content_type.pluralized_name }}",
171
+ parent: 'product.repository.info'
172
+ }
164
173
  });
165
174
 
166
175
  $stateProvider.state('product.repository.tasks', {
@@ -21,11 +21,28 @@
21
21
  });
22
22
  };
23
23
 
24
- this.repositoryTypeEnabled = function (desiredType) {
25
- var found = _.find(repositoryTypes, function(type) {
26
- return type.id === desiredType;
24
+ this.genericContentTypes = function (repoTypeLabel) {
25
+ var types;
26
+ var typesToSearch = repositoryTypes;
27
+ if (angular.isDefined(repoTypeLabel)) {
28
+ typesToSearch = [this.repositoryType(repoTypeLabel)];
29
+ }
30
+ types = _.map(typesToSearch, function(repoType) {
31
+ return _.filter(repoType['content_types'], function(contentType) {
32
+ return contentType.generic;
33
+ });
34
+ });
35
+ return [].concat.apply([], types);
36
+ };
37
+
38
+ this.repositoryType = function (typeLabel) {
39
+ return _.find(repositoryTypes, function(type) {
40
+ return type.id === typeLabel;
27
41
  });
28
- return angular.isDefined(found);
42
+ };
43
+
44
+ this.repositoryTypeEnabled = function (desiredType) {
45
+ return angular.isDefined(this.repositoryType(desiredType));
29
46
  };
30
47
 
31
48
  this.pulp3Supported = function(desiredType) {
@@ -35,6 +52,15 @@
35
52
 
36
53
  return found.pulp3_support;
37
54
  };
55
+
56
+ this.getAttribute = function(repository, key) {
57
+ var typeIndex = repositoryTypes.map(function(type) {
58
+ return type.name;
59
+ }).indexOf(repository.content_type);
60
+ if (angular.isDefined(repositoryTypes[typeIndex])) {
61
+ return repositoryTypes[typeIndex][key];
62
+ }
63
+ };
38
64
  }
39
65
 
40
66
  angular
@@ -22,7 +22,8 @@ angular.module('Bastion.repositories').factory('Repository',
22
22
  removeContent: { method: 'PUT', params: { action: 'remove_content'}},
23
23
  autocomplete: {method: 'GET', isArray: true, params: {id: 'auto_complete_search'}},
24
24
  repositoryTypes: {method: 'GET', isArray: true, params: {id: 'repository_types'}},
25
- republish: {method: 'PUT', params: { action: 'republish' }}
25
+ republish: {method: 'PUT', params: { action: 'republish' }},
26
+ remove: {method: 'DELETE', params: { 'remove_from_content_view_versions': true }}
26
27
  }
27
28
  );
28
29
 
@@ -99,6 +99,14 @@
99
99
  <span ng-hide="repository.url" translate>N/A</span>
100
100
  </td>
101
101
  <td bst-table-cell>
102
+ <span ng-repeat="content_type in genericContentTypesFor(repository.content_type)">
103
+ <div>
104
+ <a ui-sref="product.repository.manage-content.generic-content({contentTypeLabel: '{{content_type['pluralized_label']}}', productId: product.id, repositoryId: repository.id})">
105
+ {{ repository.content_counts[content_type.label] }} {{ content_type.pluralized_name }}
106
+ </a>
107
+ </div>
108
+ </span>
109
+
102
110
  <span ng-show="repository.content_type == 'yum'">
103
111
  <div>
104
112
  <a translate ui-sref="product.repository.manage-content.packages({productId: product.id, repositoryId: repository.id})">
@@ -28,9 +28,13 @@ angular.module('Bastion.sync-plans').controller('SyncPlanDetailsInfoController',
28
28
  $scope.editedInterval = false;
29
29
 
30
30
  function updateSyncPlan(syncPlan) {
31
- var syncDate;
31
+ var syncDate, splitDates;
32
32
  if (syncPlan['sync_date']) {
33
- syncDate = new Date(syncPlan['sync_date']);
33
+ // Firefox doesn't work with new Date(2021-10-04 18:57:00 -0400)
34
+ //Needs to be in format YYYY-MM-DDTHH:mm:ss.sssZ
35
+ // see: https://262.ecma-international.org/5.1/#sec-15.9.1.15
36
+ splitDates = syncPlan['sync_date'].split(' ');
37
+ syncDate = new Date(splitDates[0] + 'T' + splitDates[1] + splitDates[2]);
34
38
  } else {
35
39
  syncDate = new Date();
36
40
  }
@@ -20,7 +20,7 @@
20
20
  <dt translate>Start Date</dt>
21
21
  <dd bst-edit-custom="syncPlan.syncDate"
22
22
  formatter="date"
23
- formatter-options="'MMMM d, y, hh:mm a'"
23
+ formatter-options="'MMMM dd, y, hh:mm a'"
24
24
  on-save="save(syncPlan)"
25
25
  readonly="denied('edit_sync_plans', syncPlan)">
26
26
 
@@ -25,7 +25,7 @@ module BastionKatello
25
25
  activation_keys
26
26
  content_credentials
27
27
  content_hosts
28
- content_views
28
+ legacy
29
29
  debs
30
30
  docker_tags
31
31
  files
@@ -182,7 +182,6 @@ module Katello
182
182
  #Controller extensions
183
183
  ::HostsController.include Katello::Concerns::HostsControllerExtensions
184
184
  ::SmartProxiesController.include Katello::Concerns::SmartProxiesControllerExtensions
185
- ::SmartProxiesController.include Katello::Concerns::SmartProxiesControllerExtensions
186
185
  ::RegistrationCommandsController.prepend Katello::Concerns::RegistrationCommandsControllerExtensions
187
186
 
188
187
  #Helper Extensions
@@ -76,6 +76,7 @@ module Katello
76
76
  'katello/api/v2/content_view_repositories' => [:show_all],
77
77
  'katello/api/v2/content_view_versions' => [:index, :show, :auto_complete_search],
78
78
  'katello/api/v2/content_view_components' => [:index, :show, :show_all],
79
+ 'katello/api/v2/debs' => [:index],
79
80
  'katello/api/v2/packages' => [:index],
80
81
  'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
81
82
  'katello/api/v2/errata' => [:index, :show, :auto_complete_search, :compare],
@@ -115,7 +116,7 @@ module Katello
115
116
  {
116
117
  'katello/api/v2/content_views' => [:update, :remove_filters],
117
118
  'katello/api/v2/content_view_versions' => [:update],
118
- 'katello/api/v2/content_view_filters' => [:create, :update, :destroy],
119
+ 'katello/api/v2/content_view_filters' => [:create, :update, :destroy, :remove_filter_rules, :add_filter_rules],
119
120
  'katello/api/v2/content_view_filter_rules' => [:create, :update, :destroy],
120
121
  'katello/api/v2/content_view_components' => [:add_components, :remove_components, :update]
121
122
  },
@@ -239,10 +240,10 @@ module Katello
239
240
  {
240
241
  'katello/products' => [:auto_complete, :auto_complete_search],
241
242
  'katello/api/v2/products' => [:index, :show, :auto_complete_search],
242
- 'katello/api/v2/repositories' => [:index, :show, :repository_types, :auto_complete_search, :cancel],
243
+ 'katello/api/v2/repositories' => [:index, :show, :repository_types, :content_types, :auto_complete_search, :cancel],
243
244
  'katello/api/v2/packages' => [:index, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch, :compare],
244
245
  'katello/api/v2/srpms' => [:index, :show, :auto_complete_search, :compare],
245
- 'katello/api/v2/debs' => [:index, :show, :auto_complete_search, :compare],
246
+ 'katello/api/v2/debs' => [:index, :show, :auto_complete_search, :auto_complete_name, :auto_complete_arch, :compare],
246
247
  'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
247
248
  'katello/api/v2/docker_manifests' => [:index, :show, :auto_complete_search, :compare],
248
249
  'katello/api/v2/docker_manifest_lists' => [:index, :show, :auto_complete_search, :compare],
@@ -58,6 +58,7 @@ Foreman::AccessControl.permission(:view_hosts).actions.concat [
58
58
  'katello/api/v2/host_packages/index',
59
59
  'katello/api/v2/host_tracer/index',
60
60
  'katello/api/v2/host_tracer/resolve',
61
+ 'katello/api/v2/host_tracer/auto_complete_search',
61
62
  'katello/remote_execution/new',
62
63
  'katello/remote_execution/create',
63
64
  'katello/api/v2/repository_sets/index',
@@ -14,7 +14,8 @@ Foreman::AccessControl.permission(:create_organizations).actions.concat [
14
14
  ]
15
15
 
16
16
  Foreman::AccessControl.permission(:edit_organizations).actions.concat [
17
- 'katello/api/v2/organizations/update'
17
+ 'katello/api/v2/organizations/update',
18
+ 'katello/api/v2/organizations/cdn_configuration'
18
19
  ]
19
20
 
20
21
  Foreman::AccessControl.permission(:destroy_organizations).actions.concat [
@@ -170,6 +170,16 @@ Foreman::Plugin.register :katello do
170
170
  :engine => Katello::Engine,
171
171
  :turbolinks => false,
172
172
  :if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::ANSIBLE_COLLECTION_TYPE) }
173
+
174
+ menu :top_menu,
175
+ :other_content_types,
176
+ :caption => N_('Other Content Types'),
177
+ :url => '/content',
178
+ :url_hash => {:controller => '/',
179
+ :action => ''},
180
+ :engine => Katello::Engine,
181
+ :turbolinks => false,
182
+ :if => lambda { true }
173
183
  end
174
184
 
175
185
  menu :top_menu,
@@ -194,19 +204,10 @@ Foreman::Plugin.register :katello do
194
204
  :after => :content_hosts,
195
205
  :turbolinks => false
196
206
 
197
- menu :labs_menu,
198
- :content_publication,
199
- :url => '/labs/content_views',
200
- :url_hash => {:controller => 'katello/api/v2/content_views',
201
- :action => 'index'},
202
- :caption => N_('Content Views'),
203
- :parent => :lab_features_menu,
204
- :turbolinks => false
205
-
206
207
  extend_template_helpers Katello::KatelloUrlsHelper
207
208
  extend_template_helpers Katello::Concerns::BaseTemplateScopeExtensions
208
209
 
209
- register_global_js_file 'fills'
210
+ register_global_js_file 'global'
210
211
 
211
212
  search_path_override("Katello") do |resource|
212
213
  "/#{Katello::Util::Model.model_to_controller_path(resource)}/auto_complete_search"
@@ -250,7 +251,7 @@ Foreman::Plugin.register :katello do
250
251
  context.add_pagelet :main_tabs,
251
252
  :name => _("Content"),
252
253
  :partial => "foreman/smart_proxies/content_tab",
253
- :onlyif => proc { |proxy| proxy.has_feature?(SmartProxy::PULP_NODE_FEATURE) || proxy.has_feature?(SmartProxy::PULP3_FEATURE) }
254
+ :onlyif => proc { |proxy| proxy.pulp_mirror? }
254
255
  context.add_pagelet :details_content,
255
256
  :name => _("Content Sync"),
256
257
  :partial => "foreman/smart_proxies/content_sync",
@@ -312,10 +313,13 @@ Foreman::Plugin.register :katello do
312
313
  RemoteExecutionFeature.register(:katello_group_remove, N_("Katello: Remove Package Group"), :description => N_("Remove package group via Katello interface"), :provided_inputs => ['package'])
313
314
  RemoteExecutionFeature.register(:katello_errata_install, N_("Katello: Install Errata"), :description => N_("Install errata via Katello interface"), :provided_inputs => ['errata'])
314
315
  RemoteExecutionFeature.register(:katello_service_restart, N_("Katello: Service Restart"), :description => N_("Restart Services via Katello interface"), :provided_inputs => ['helpers'])
316
+ RemoteExecutionFeature.register(:katello_host_tracer_resolve, N_("Katello: Resolve Traces"), :description => N_("Resolve traces via Katello interface"), :provided_inputs => ['ids'])
315
317
  RemoteExecutionFeature.register(:katello_module_stream_action, N_("Katello: Module Stream Actions"),
316
318
  :description => N_("Perform a module stream action via Katello interface"),
317
319
  :provided_inputs => ['action', 'module_spec', 'options'])
318
320
  allowed_template_helpers :errata
321
+
322
+ RemoteExecutionProvider.singleton_class.prepend(Katello::Concerns::RemoteExecutionProviderExtensions)
319
323
  end
320
324
 
321
325
  tests_to_skip("AccessPermissionsTest" => [
@@ -5,5 +5,17 @@ Katello::RepositoryTypeManager.register(::Katello::Repository::ANSIBLE_COLLECTIO
5
5
  pulp3_api_class Katello::Pulp3::Api::AnsibleCollection
6
6
  pulp3_plugin 'ansible'
7
7
 
8
- content_type Katello::AnsibleCollection, :pulp3_service_class => ::Katello::Pulp3::AnsibleCollection, :user_removable => true
8
+ client_module_class PulpAnsibleClient
9
+ api_class PulpAnsibleClient::ApiClient
10
+ configuration_class PulpAnsibleClient::Configuration
11
+ remote_class PulpAnsibleClient::AnsibleCollectionRemote
12
+ remotes_api_class PulpAnsibleClient::RemotesCollectionApi
13
+ repository_versions_api_class PulpAnsibleClient::RepositoriesAnsibleVersionsApi
14
+ repositories_api_class PulpAnsibleClient::RepositoriesAnsibleApi
15
+ distributions_api_class PulpAnsibleClient::DistributionsAnsibleApi
16
+ distribution_class PulpAnsibleClient::AnsibleAnsibleDistribution
17
+ repo_sync_url_class PulpAnsibleClient::AnsibleRepositorySyncURL
18
+
19
+ content_type Katello::AnsibleCollection, :pulp3_service_class => ::Katello::Pulp3::AnsibleCollection, :user_removable => true, generic_browser: true
20
+ default_managed_content_type :ansible_collections
9
21
  end
@@ -5,6 +5,19 @@ Katello::RepositoryTypeManager.register(::Katello::Repository::DEB_TYPE) do
5
5
  pulp3_plugin 'deb'
6
6
  prevent_unneeded_metadata_publish
7
7
 
8
+ client_module_class PulpDebClient
9
+ api_class PulpDebClient::ApiClient
10
+ configuration_class PulpDebClient::Configuration
11
+ remote_class PulpDebClient::DebAptRemote
12
+ remotes_api_class PulpDebClient::RemotesAptApi
13
+ repository_versions_api_class PulpDebClient::RepositoriesAptVersionsApi
14
+ repositories_api_class PulpDebClient::RepositoriesAptApi
15
+ distributions_api_class PulpDebClient::DistributionsAptApi
16
+ distribution_class PulpDebClient::DebAptDistribution
17
+ publication_class PulpDebClient::DebAptPublication
18
+ publications_api_class PulpDebClient::PublicationsAptApi
19
+ repo_sync_url_class PulpDebClient::RepositorySyncURL
20
+
8
21
  default_managed_content_type Katello::Deb::CONTENT_TYPE
9
22
  content_type Katello::Deb,
10
23
  :pulp2_service_class => ::Katello::Pulp::Deb,
@@ -8,6 +8,17 @@ Katello::RepositoryTypeManager.register(::Katello::Repository::DOCKER_TYPE) do
8
8
 
9
9
  set_unique_content_per_repo
10
10
 
11
+ client_module_class PulpContainerClient
12
+ api_class PulpContainerClient::ApiClient
13
+ configuration_class PulpContainerClient::Configuration
14
+ remote_class PulpContainerClient::ContainerContainerRemote
15
+ remotes_api_class PulpContainerClient::RemotesContainerApi
16
+ repository_versions_api_class PulpContainerClient::RepositoriesContainerVersionsApi
17
+ repositories_api_class PulpContainerClient::RepositoriesContainerApi
18
+ distributions_api_class PulpContainerClient::DistributionsContainerApi
19
+ distribution_class PulpContainerClient::ContainerContainerDistribution
20
+ repo_sync_url_class PulpContainerClient::RepositorySyncURL
21
+
11
22
  content_type Katello::DockerManifest,
12
23
  :priority => 1,
13
24
  :pulp2_service_class => ::Katello::Pulp::DockerManifest,
@@ -21,7 +32,8 @@ Katello::RepositoryTypeManager.register(::Katello::Repository::DOCKER_TYPE) do
21
32
  content_type Katello::DockerTag,
22
33
  :priority => 3,
23
34
  :pulp2_service_class => ::Katello::Pulp::DockerTag,
24
- :pulp3_service_class => ::Katello::Pulp3::DockerTag
35
+ :pulp3_service_class => ::Katello::Pulp3::DockerTag,
36
+ :primary_content => true
25
37
  content_type Katello::DockerBlob,
26
38
  :priority => 4,
27
39
  :pulp2_service_class => ::Katello::Pulp::DockerBlob,
@@ -5,6 +5,19 @@ Katello::RepositoryTypeManager.register(::Katello::Repository::FILE_TYPE) do
5
5
  pulp3_api_class Katello::Pulp3::Api::File
6
6
  pulp3_plugin 'file'
7
7
 
8
+ client_module_class PulpFileClient
9
+ api_class PulpFileClient::ApiClient
10
+ configuration_class PulpFileClient::Configuration
11
+ remote_class PulpFileClient::FileFileRemote
12
+ remotes_api_class PulpFileClient::RemotesFileApi
13
+ repository_versions_api_class PulpFileClient::RepositoriesFileVersionsApi
14
+ repositories_api_class PulpFileClient::RepositoriesFileApi
15
+ distributions_api_class PulpFileClient::DistributionsFileApi
16
+ distribution_class PulpFileClient::FileFileDistribution
17
+ publication_class PulpFileClient::FileFilePublication
18
+ publications_api_class PulpFileClient::PublicationsFileApi
19
+ repo_sync_url_class PulpFileClient::RepositorySyncURL
20
+
8
21
  content_type Katello::FileUnit,
9
22
  :pulp2_service_class => ::Katello::Pulp::FileUnit,
10
23
  :pulp3_service_class => ::Katello::Pulp3::FileUnit,
@@ -1,5 +1,49 @@
1
- Katello::RepositoryTypeManager.register(::Katello::Repository::OSTREE_TYPE) do
2
- service_class Katello::Pulp::Repository::Ostree
3
- default_managed_content_type Katello::OstreeBranch::CONTENT_TYPE
4
- content_type Katello::OstreeBranch, :pulp2_service_class => ::Katello::Pulp::OstreeBranch, :removable => true, :uploadable => true
1
+ require 'pulp_ostree_client'
2
+
3
+ Katello::RepositoryTypeManager.register('ostree') do
4
+ allow_creation_by_user true
5
+ pulp3_service_class Katello::Pulp3::Repository::Generic
6
+ pulp3_api_class Katello::Pulp3::Api::Generic
7
+ pulp3_plugin 'ostree'
8
+ pulp3_skip_publication true
9
+
10
+ client_module_class PulpOstreeClient
11
+ api_class PulpOstreeClient::ApiClient
12
+ configuration_class PulpOstreeClient::Configuration
13
+ remote_class PulpOstreeClient::OstreeOstreeRemote
14
+ remotes_api_class PulpOstreeClient::RemotesOstreeApi
15
+ repositories_api_class PulpOstreeClient::RepositoriesOstreeApi
16
+ repository_versions_api_class PulpOstreeClient::RepositoriesOstreeVersionsApi
17
+ distributions_api_class PulpOstreeClient::DistributionsOstreeApi
18
+ distribution_class PulpOstreeClient::OstreeOstreeDistribution
19
+ repo_sync_url_class PulpOstreeClient::RepositorySyncURL
20
+
21
+ url_description N_("URL of an OSTree repository.")
22
+
23
+ generic_content_type 'ostree_ref',
24
+ model_class: Katello::GenericContentUnit,
25
+ pulp3_api: PulpOstreeClient::ContentRefsApi,
26
+ pulp3_service_class: Katello::Pulp3::GenericContentUnit,
27
+ model_name: lambda { |pulp_unit| pulp_unit["name"] },
28
+ model_version: lambda { |pulp_unit| pulp_unit["version"] }
29
+
30
+ import_attribute :ref, :content_type => 'ostree_ref',
31
+ :api_param => :ostree_ref,
32
+ :description => "OSTree ref branch that holds the reference to the last commit",
33
+ :type => String,
34
+ :required => false
35
+
36
+ import_attribute :parent_commit, :content_type => 'ostree_ref',
37
+ :api_param => :ostree_parent_commit,
38
+ :description => "Checksum of a parent commit",
39
+ :type => String,
40
+ :required => false
41
+
42
+ import_attribute :repository_name, :content_type => 'ostree_ref',
43
+ :api_param => :ostree_repository_name,
44
+ :description => "Name of the repository in the ostree archive",
45
+ :type => String,
46
+ :required => true
47
+
48
+ default_managed_content_type :ostree_ref
5
49
  end