katello 3.9.1 → 3.10.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 (229) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +28 -12
  3. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +12 -3
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +4 -13
  5. data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
  6. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
  7. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -4
  8. data/app/controllers/katello/api/v2/content_views_controller.rb +8 -3
  9. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +2 -1
  10. data/app/controllers/katello/api/v2/host_module_streams_controller.rb +39 -0
  11. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +20 -11
  12. data/app/controllers/katello/api/v2/module_streams_controller.rb +2 -1
  13. data/app/controllers/katello/api/v2/repository_sets_controller.rb +17 -8
  14. data/app/controllers/katello/application_controller.rb +0 -2
  15. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +5 -2
  16. data/app/lib/actions/candlepin/consumer/attach_subscription.rb +0 -2
  17. data/app/lib/actions/candlepin/consumer/remove_subscription.rb +0 -2
  18. data/app/lib/actions/katello/capsule_content/create_repos.rb +1 -25
  19. data/app/lib/actions/katello/capsule_content/sync.rb +1 -1
  20. data/app/lib/actions/katello/content_view/promote.rb +2 -5
  21. data/app/lib/actions/katello/content_view/promote_to_environment.rb +2 -5
  22. data/app/lib/actions/katello/content_view/publish.rb +1 -4
  23. data/app/lib/actions/katello/content_view_puppet_environment/create.rb +6 -10
  24. data/app/lib/actions/katello/content_view_version/export.rb +0 -2
  25. data/app/lib/actions/katello/content_view_version/incremental_update.rb +19 -1
  26. data/app/lib/actions/katello/environment/publish_repositories.rb +2 -1
  27. data/app/lib/actions/katello/gpg_key/update.rb +17 -0
  28. data/app/lib/actions/katello/host/attach_subscriptions.rb +0 -2
  29. data/app/lib/actions/katello/host/erratum/install.rb +6 -0
  30. data/app/lib/actions/katello/host/generate_applicability.rb +0 -2
  31. data/app/lib/actions/katello/host/hypervisors_update.rb +11 -6
  32. data/app/lib/actions/katello/host/package/install.rb +6 -0
  33. data/app/lib/actions/katello/host/package/remove.rb +6 -0
  34. data/app/lib/actions/katello/host/package/update.rb +7 -1
  35. data/app/lib/actions/katello/host/package_group/install.rb +6 -0
  36. data/app/lib/actions/katello/host/package_group/remove.rb +6 -0
  37. data/app/lib/actions/katello/host/recalculate_errata_status.rb +0 -2
  38. data/app/lib/actions/katello/host/remove_subscriptions.rb +0 -2
  39. data/app/lib/actions/katello/host/update.rb +1 -0
  40. data/app/lib/actions/katello/host/update_content_overrides.rb +0 -2
  41. data/app/lib/actions/katello/host/upload_package_profile.rb +13 -12
  42. data/app/lib/actions/katello/host/upload_profiles.rb +70 -0
  43. data/app/lib/actions/katello/product/reindex_subscriptions.rb +0 -2
  44. data/app/lib/actions/katello/product/repositories_certs_reset.rb +4 -4
  45. data/app/lib/actions/katello/product/repositories_gpg_reset.rb +2 -2
  46. data/app/lib/actions/katello/repository/check_matching_content.rb +18 -6
  47. data/app/lib/actions/katello/repository/clone_deb_content.rb +1 -1
  48. data/app/lib/actions/katello/repository/clone_to_environment.rb +3 -5
  49. data/app/lib/actions/katello/repository/clone_to_version.rb +2 -3
  50. data/app/lib/actions/katello/repository/clone_yum_content.rb +1 -2
  51. data/app/lib/actions/katello/repository/clone_yum_metadata.rb +2 -2
  52. data/app/lib/actions/katello/repository/create.rb +1 -31
  53. data/app/lib/actions/katello/repository/destroy.rb +1 -2
  54. data/app/lib/actions/katello/repository/export.rb +0 -2
  55. data/app/lib/actions/katello/repository/fetch_pxe_files.rb +0 -2
  56. data/app/lib/actions/katello/repository/filtered_index_content.rb +0 -2
  57. data/app/lib/actions/katello/repository/finish_upload.rb +0 -2
  58. data/app/lib/actions/katello/repository/import_upload.rb +0 -2
  59. data/app/lib/actions/katello/repository/index_content.rb +0 -1
  60. data/app/lib/actions/katello/repository/index_package_groups.rb +0 -2
  61. data/app/lib/actions/katello/repository/instance_update.rb +21 -0
  62. data/app/lib/actions/katello/repository/remove_content.rb +0 -2
  63. data/app/lib/actions/katello/repository/sync.rb +0 -1
  64. data/app/lib/actions/katello/repository/update.rb +0 -2
  65. data/app/lib/actions/katello/upstream_subscriptions/bind_entitlement.rb +0 -2
  66. data/app/lib/actions/katello/upstream_subscriptions/bind_entitlements.rb +0 -2
  67. data/app/lib/actions/katello/upstream_subscriptions/remove_entitlement.rb +0 -1
  68. data/app/lib/actions/katello/upstream_subscriptions/remove_entitlements.rb +0 -2
  69. data/app/lib/actions/katello/upstream_subscriptions/update_entitlement.rb +0 -1
  70. data/app/lib/actions/katello/upstream_subscriptions/update_entitlements.rb +0 -2
  71. data/app/lib/actions/pulp/abstract.rb +13 -14
  72. data/app/lib/actions/pulp/repository/create.rb +13 -211
  73. data/app/lib/actions/pulp/repository/create_in_plan.rb +4 -18
  74. data/app/lib/actions/pulp/repository/refresh.rb +7 -70
  75. data/app/lib/actions/pulp/repository/sync.rb +1 -2
  76. data/app/lib/katello/capsule_content.rb +3 -3
  77. data/app/lib/katello/resources/candlepin/consumer.rb +1 -1
  78. data/app/lib/katello/resources/candlepin/product.rb +1 -1
  79. data/app/lib/katello/validators/hostgroup_kickstart_repository_validator.rb +1 -1
  80. data/app/models/katello/available_module_stream.rb +11 -0
  81. data/app/models/katello/concerns/content_facet_host_extensions.rb +1 -0
  82. data/app/models/katello/concerns/host_managed_extensions.rb +56 -0
  83. data/app/models/katello/concerns/hostgroup_extensions.rb +17 -0
  84. data/app/models/katello/concerns/redhat_extensions.rb +20 -6
  85. data/app/models/katello/concerns/search_by_repository_name.rb +0 -1
  86. data/app/models/katello/concerns/smart_proxy_extensions.rb +26 -12
  87. data/app/models/katello/content_facet_applicable_module_stream.rb +7 -0
  88. data/app/models/katello/content_view_puppet_environment.rb +14 -35
  89. data/app/models/katello/erratum.rb +54 -24
  90. data/app/models/katello/erratum_package.rb +6 -0
  91. data/app/models/katello/glue/pulp/repo.rb +5 -228
  92. data/app/models/katello/gpg_key.rb +1 -0
  93. data/app/models/katello/host/content_facet.rb +38 -83
  94. data/app/models/katello/host_available_module_stream.rb +47 -0
  95. data/app/models/katello/module_stream.rb +18 -0
  96. data/app/models/katello/module_stream_erratum_package.rb +6 -0
  97. data/app/models/katello/product.rb +0 -2
  98. data/app/models/katello/product_content.rb +1 -0
  99. data/app/models/katello/repository.rb +15 -6
  100. data/app/models/katello/root_repository.rb +1 -1
  101. data/app/models/katello/rpm.rb +5 -17
  102. data/app/services/katello/applicable_content_helper.rb +111 -0
  103. data/app/services/katello/managed_content_medium_provider.rb +7 -0
  104. data/app/services/katello/pulp/consumer.rb +13 -7
  105. data/app/services/katello/pulp/repository.rb +157 -4
  106. data/app/services/katello/pulp/repository/deb.rb +47 -0
  107. data/app/services/katello/pulp/repository/docker.rb +43 -0
  108. data/app/services/katello/pulp/repository/file.rb +31 -0
  109. data/app/services/katello/pulp/repository/ostree.rb +40 -0
  110. data/app/services/katello/pulp/repository/puppet.rb +43 -0
  111. data/app/services/katello/pulp/repository/yum.rb +61 -0
  112. data/app/services/katello/repository_type.rb +1 -1
  113. data/app/views/katello/api/v2/content_facet/base.json.rabl +1 -0
  114. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +0 -1
  115. data/app/views/katello/api/v2/errata/_counts.json.rabl +0 -1
  116. data/app/views/katello/api/v2/errata/show.json.rabl +9 -3
  117. data/app/views/katello/api/v2/host_collections/delta_activation_keys.rabl +0 -1
  118. data/app/views/katello/api/v2/host_module_streams/base.json.rabl +8 -0
  119. data/app/views/katello/api/v2/host_module_streams/index.json.rabl +7 -0
  120. data/app/views/katello/api/v2/packages/backend.json.rabl +0 -1
  121. data/app/views/katello/api/v2/repositories/show.json.rabl +6 -6
  122. data/app/views/katello/layouts/react.html.erb +2 -2
  123. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +0 -1
  124. data/config/routes/api/rhsm.rb +1 -0
  125. data/config/routes/overrides.rb +4 -0
  126. data/db/migrate/20181008201422_add_modules_to_errata_packages.rb +29 -0
  127. data/db/migrate/20181017181806_available_module_streams.rb +34 -0
  128. data/db/migrate/20181027014323_add_applicable_modules.rb +24 -0
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/module-stream-actions.service.js +2 -1
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html +1 -1
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html +1 -0
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-host-bulk-module-streams-modal.html +2 -2
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +37 -22
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +4 -1
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +27 -7
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-module-streams.html +29 -0
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/errata-details.html +15 -1
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +1 -1
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +0 -1
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +1 -2
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +3 -1
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +1 -1
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +0 -15
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +0 -14
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum.controller.js +19 -0
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-info.html +0 -12
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-packages.html +36 -0
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum.html +7 -0
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +9 -0
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-module-streams.factory.js +18 -0
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +4 -2
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -2
  153. data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +13 -0
  154. data/lib/katello/permissions/host_permissions.rb +3 -0
  155. data/lib/katello/repository_types/deb.rb +3 -1
  156. data/lib/katello/repository_types/docker.rb +3 -1
  157. data/lib/katello/repository_types/file.rb +1 -0
  158. data/lib/katello/repository_types/ostree.rb +3 -1
  159. data/lib/katello/repository_types/puppet.rb +3 -1
  160. data/lib/katello/repository_types/yum.rb +3 -1
  161. data/lib/katello/tasks/delete_orphaned_content.rake +1 -1
  162. data/lib/katello/tasks/reset.rake +1 -0
  163. data/lib/katello/tasks/test.rake +14 -0
  164. data/lib/katello/tasks/unify_hosts.rake +2 -0
  165. data/lib/katello/tasks/virt_who_report.rake +2 -1
  166. data/lib/katello/version.rb +1 -1
  167. data/locale/Makefile +52 -17
  168. data/locale/update-i18n +22 -0
  169. data/package.json +11 -1
  170. data/webpack/__mocks__/foremanReact/components/common/EmptyState.js +8 -0
  171. data/webpack/move_to_foreman/components/common/table/components/Table.js +2 -1
  172. data/webpack/move_to_pf/react-bootstrap-select/index.js +4 -2
  173. data/webpack/move_to_pf/test-utils/testHelpers.js +9 -0
  174. data/webpack/redux/OrganizationProducts/OrganizationProductsActions.js +24 -0
  175. data/webpack/redux/OrganizationProducts/OrganizationProductsConstants.js +5 -0
  176. data/webpack/redux/OrganizationProducts/OrganizationProductsReducer.js +38 -0
  177. data/webpack/redux/OrganizationProducts/OrganizationProductsSelectors.js +7 -0
  178. data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsActions.test.js +47 -0
  179. data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsReducer.test.js +33 -0
  180. data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsSelectors.test.js +19 -0
  181. data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsActions.test.js.snap +49 -0
  182. data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsReducer.test.js.snap +36 -0
  183. data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsSelectors.test.js.snap +9 -0
  184. data/webpack/redux/OrganizationProducts/index.js +13 -0
  185. data/webpack/redux/actions/RedHatRepositories/enabled.js +7 -1
  186. data/webpack/redux/actions/RedHatRepositories/helpers.js +4 -0
  187. data/webpack/redux/actions/RedHatRepositories/sets.js +2 -0
  188. data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +8 -2
  189. data/webpack/redux/reducers/RedHatRepositories/enabled.js +1 -1
  190. data/webpack/redux/reducers/RedHatRepositories/sets.fixtures.js +12 -3
  191. data/webpack/redux/reducers/index.js +2 -0
  192. data/webpack/scenes/RedHatRepositories/components/SearchBar.js +68 -33
  193. data/webpack/scenes/RedHatRepositories/index.js +13 -2
  194. data/webpack/scenes/RedHatRepositories/index.scss +26 -0
  195. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +1 -1
  196. data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +1 -1
  197. data/webpack/scenes/Subscriptions/SubscriptionActions.js +18 -2
  198. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +8 -0
  199. data/webpack/scenes/Subscriptions/SubscriptionHelpers.js +15 -0
  200. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +22 -14
  201. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +39 -90
  202. data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +14 -0
  203. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +1 -3
  204. data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/__snapshots__/UpstreamSubscriptionsPage.test.js.snap +0 -1
  205. data/webpack/scenes/Subscriptions/__tests__/SubscriptionHelpers.test.js +84 -0
  206. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +26 -1
  207. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +5 -0
  208. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +177 -75
  209. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsSelectors.test.js +29 -0
  210. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionHelpers.test.js.snap +31 -0
  211. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +32 -0
  212. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +18 -96
  213. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +511 -0
  214. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap +26 -0
  215. data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +6 -1
  216. data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +3 -21
  217. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +113 -0
  218. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.test.js +47 -0
  219. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +504 -0
  220. data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/index.js +1 -0
  221. data/webpack/scenes/Subscriptions/index.js +15 -4
  222. metadata +59 -14
  223. data/app/lib/actions/pulp/repository/associate_distributor.rb +0 -20
  224. data/app/lib/actions/pulp/repository/associate_importer.rb +0 -23
  225. data/app/lib/actions/pulp/repository/delete_distributor.rb +0 -18
  226. data/app/lib/actions/pulp/repository/refresh_distributor.rb +0 -19
  227. data/app/lib/actions/pulp/repository/update_importer.rb +0 -33
  228. data/app/lib/katello/bulk_actions.rb +0 -63
  229. data/webpack/move_to_foreman/components/common/EmptyState/index.js +0 -68
@@ -0,0 +1,47 @@
1
+ module Katello
2
+ module Pulp
3
+ class Repository
4
+ class Deb < ::Katello::Pulp::Repository
5
+ def generate_master_importer
6
+ config = {
7
+ feed: root.url,
8
+ remove_missing: root.mirror_on_sync?,
9
+ releases: root.deb_releases,
10
+ components: root.deb_components,
11
+ architectures: root.deb_architectures,
12
+ gpg_keys: root&.gpg_key&.content,
13
+ require_signature: root.gpg_key.present?
14
+ }
15
+ importer_class.new(config.merge(master_importer_connection_options))
16
+ end
17
+
18
+ def generate_mirror_importer
19
+ config = {
20
+ feed: external_url,
21
+ remove_missing: true,
22
+ releases: root.deb_releases,
23
+ components: root.deb_components,
24
+ architectures: root.deb_architectures,
25
+ gpg_keys: root&.gpg_key&.content,
26
+ require_signature: root.gpg_key.present?
27
+ }
28
+ importer_class.new(config.merge(mirror_importer_connection_options))
29
+ end
30
+
31
+ def generate_distributors
32
+ [Runcible::Models::DebDistributor.new(repo.relative_path, root.unprotected, true,
33
+ id: repo.pulp_id,
34
+ auto_publish: true)]
35
+ end
36
+
37
+ def partial_repo_path
38
+ "/pulp/deb/#{repo.relative_path}/"
39
+ end
40
+
41
+ def importer_class
42
+ Runcible::Models::DebImporter
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,43 @@
1
+ module Katello
2
+ module Pulp
3
+ class Repository
4
+ class Docker < ::Katello::Pulp::Repository
5
+ def generate_master_importer
6
+ config = {
7
+ feed: root.url,
8
+ upstream_name: root.docker_upstream_name,
9
+ tags: root.docker_tags_whitelist,
10
+ enable_v1: false
11
+ }
12
+ importer_class.new(config.merge(master_importer_connection_options))
13
+ end
14
+
15
+ def generate_mirror_importer
16
+ pulp_uri = URI.parse(SmartProxy.pulp_master.pulp_url)
17
+ config = {
18
+ feed: "https://#{pulp_uri.host.downcase}:#{Setting['pulp_docker_registry_port']}",
19
+ upstream_name: repo.container_repository_name,
20
+ enable_v1: false
21
+ }
22
+ importer_class.new(config.merge(mirror_importer_connection_options))
23
+ end
24
+
25
+ def generate_distributors
26
+ [Runcible::Models::DockerDistributor.new(:protected => !root.unprotected,
27
+ :id => repo.pulp_id,
28
+ :auto_publish => true,
29
+ :repo_registry_id => repo.container_repository_name)]
30
+ end
31
+
32
+ def external_url(_force_https = false)
33
+ pulp_uri = URI.parse(SmartProxy.pulp_master.pulp_url)
34
+ "#{pulp_uri.host.downcase}:#{Setting['pulp_docker_registry_port']}/#{repo.container_repository_name}"
35
+ end
36
+
37
+ def importer_class
38
+ Runcible::Models::DockerImporter
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,31 @@
1
+ module Katello
2
+ module Pulp
3
+ class Repository
4
+ class File < ::Katello::Pulp::Repository
5
+ def generate_master_importer
6
+ config = { feed: root.url }
7
+ importer_class.new(config.merge(master_importer_connection_options))
8
+ end
9
+
10
+ def generate_mirror_importer
11
+ config = {
12
+ feed: external_url
13
+ }
14
+ importer_class.new(config.merge(mirror_importer_connection_options))
15
+ end
16
+
17
+ def generate_distributors
18
+ [Runcible::Models::IsoDistributor.new(repo.relative_path, repo.unprotected, true, auto_publish: true)]
19
+ end
20
+
21
+ def partial_repo_path
22
+ "/pulp/isos/#{repo.relative_path}/"
23
+ end
24
+
25
+ def importer_class
26
+ Runcible::Models::IsoImporter
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,40 @@
1
+ module Katello
2
+ module Pulp
3
+ class Repository
4
+ class Ostree < ::Katello::Pulp::Repository
5
+ PULP_MIRROR_SYNC_DEPTH = -1
6
+
7
+ def generate_master_importer
8
+ config = {
9
+ feed: root.url,
10
+ depth: root.compute_ostree_upstream_sync_depth
11
+ }
12
+ Runcible::Models::OstreeImporter.new(config.merge(master_importer_connection_options))
13
+ end
14
+
15
+ def generate_mirror_importer
16
+ config = {
17
+ feed: root.url,
18
+ depth: PULP_MIRROR_SYNC_DEPTH
19
+ }
20
+ Runcible::Models::OstreeImporter.new(config.merge(mirror_importer_connection_options))
21
+ end
22
+
23
+ def generate_distributors
24
+ [Runcible::Models::OstreeDistributor.new(:id => repo.pulp_id,
25
+ :auto_publish => true,
26
+ :relative_path => repo.relative_path,
27
+ :depth => root.compute_ostree_upstream_sync_depth)]
28
+ end
29
+
30
+ def partial_repo_path
31
+ "/pulp/puppet/#{pulp_id}/"
32
+ end
33
+
34
+ def importer_class
35
+ Runcible::Models::OstreeImporter
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,43 @@
1
+ module Katello
2
+ module Pulp
3
+ class Repository
4
+ class Puppet < ::Katello::Pulp::Repository
5
+ def generate_master_importer
6
+ config = {
7
+ feed: root.url,
8
+ remove_missing: root.mirror_on_sync?
9
+ }
10
+ importer_class.new(config.merge(master_importer_connection_options))
11
+ end
12
+
13
+ def generate_mirror_importer
14
+ config = {
15
+ :feed => self.external_url,
16
+ :remove_missing => true
17
+ }
18
+ importer_class.new(config.merge(mirror_importer_connection_options))
19
+ end
20
+
21
+ def generate_distributors
22
+ puppet_install_dist = Runcible::Models::PuppetInstallDistributor.new(puppet_install_distributor_path, :id => repo.pulp_id, :auto_publish => true)
23
+ puppet_dist = Runcible::Models::PuppetDistributor.new(nil, (root.unprotected || false), true,
24
+ :id => "#{repo.pulp_id}_puppet", :auto_publish => true)
25
+ [puppet_dist, puppet_install_dist]
26
+ end
27
+
28
+ def puppet_install_distributor_path
29
+ puppet_env = ::Environment.construct_name(repo.organization, repo.environment, repo.content_view)
30
+ ::File.join(smart_proxy.puppet_path, puppet_env, 'modules')
31
+ end
32
+
33
+ def partial_repo_path
34
+ "/pulp/puppet/#{repo.pulp_id}/"
35
+ end
36
+
37
+ def importer_class
38
+ Runcible::Models::PuppetImporter
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,61 @@
1
+ module Katello
2
+ module Pulp
3
+ class Repository
4
+ class Yum < ::Katello::Pulp::Repository
5
+ def generate_master_importer
6
+ config = {
7
+ download_policy: root.download_policy,
8
+ remove_missing: root.mirror_on_sync?,
9
+ feed: root.url,
10
+ type_skip_list: root.ignorable_content
11
+ }
12
+ importer_class.new(config.merge(master_importer_connection_options))
13
+ end
14
+
15
+ def generate_mirror_importer
16
+ config = {
17
+ download_policy: smart_proxy_download_policy,
18
+ remove_missing: true,
19
+ feed: external_url(true)
20
+ }
21
+ importer_class.new(config.merge(mirror_importer_connection_options))
22
+ end
23
+
24
+ def partial_repo_path
25
+ "/pulp/repos/#{repo.relative_path}/".sub('//', '/')
26
+ end
27
+
28
+ def importer_class
29
+ Runcible::Models::YumImporter
30
+ end
31
+
32
+ def generate_distributors
33
+ yum_dist_id = repo.pulp_id
34
+ options = {
35
+ protected: true,
36
+ id: yum_dist_id,
37
+ auto_publish: true,
38
+ checksum_type: repo.saved_checksum_type || root.checksum_type
39
+ }
40
+ distributors = [Runcible::Models::YumDistributor.new(repo.relative_path, root.unprotected, true, options)]
41
+
42
+ if smart_proxy.pulp_master?
43
+ distributors << Runcible::Models::YumCloneDistributor.new(:id => "#{repo.pulp_id}_clone",
44
+ :destination_distributor_id => yum_dist_id)
45
+ distributors << Runcible::Models::ExportDistributor.new(false, false, repo.relative_path)
46
+ end
47
+ distributors
48
+ end
49
+
50
+ def smart_proxy_download_policy
51
+ policy = smart_proxy.download_policy || Setting[:default_proxy_download_policy]
52
+ if policy == ::SmartProxy::DOWNLOAD_INHERIT
53
+ self.root.download_policy
54
+ else
55
+ policy
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
@@ -12,7 +12,7 @@ module Katello
12
12
  end
13
13
  end
14
14
 
15
- def_field :allow_creation_by_user
15
+ def_field :allow_creation_by_user, :service_class
16
16
  attr_reader :id
17
17
 
18
18
  def initialize(id)
@@ -6,6 +6,7 @@ attributes :kickstart_repository_id, :kickstart_repository_name
6
6
  attributes :errata_counts
7
7
  attributes :applicable_rpm_count => :applicable_package_count
8
8
  attributes :upgradable_rpm_count => :upgradable_package_count
9
+ attributes :applicable_module_stream_count, :upgradable_module_stream_count
9
10
 
10
11
  child :content_view => :content_view do
11
12
  attributes :id, :name
@@ -1,4 +1,3 @@
1
-
2
1
  object @resource
3
2
 
4
3
  extends 'katello/api/v2/common/identifier'
@@ -1,4 +1,3 @@
1
-
2
1
  totals = @object.relation.group(:errata_type).count.with_indifferent_access
3
2
 
4
3
  node :security do |_presenter|
@@ -16,9 +16,15 @@ end
16
16
  attributes :title => :name
17
17
  attributes :errata_type => :type
18
18
 
19
- node(:hosts_available_count) { |m| m.hosts_available(params[:organization_id]).count }
20
- node(:hosts_applicable_count) { |m| m.hosts_applicable(params[:organization_id]).count }
19
+ unless @disable_counts
20
+ node(:hosts_available_count) { |m| m.hosts_available(params[:organization_id]).count }
21
+ node(:hosts_applicable_count) { |m| m.hosts_applicable(params[:organization_id]).count }
22
+ end
21
23
 
22
24
  node :packages do |e|
23
- e.packages.pluck(:nvrea)
25
+ e.packages.non_module_stream_packages.pluck(:nvrea)
26
+ end
27
+
28
+ node :module_streams do |e|
29
+ e.module_streams
24
30
  end
@@ -1,4 +1,3 @@
1
-
2
1
  collection @collection
3
2
 
4
3
  attributes :id
@@ -0,0 +1,8 @@
1
+ object @resource
2
+
3
+ attributes :status, :installed_profiles
4
+ attributes :upgradable? => :upgradable
5
+
6
+ glue(@object.available_module_stream) do
7
+ attributes :name, :stream, :module_spec
8
+ end
@@ -0,0 +1,7 @@
1
+ object false
2
+
3
+ extends "katello/api/v2/common/metadata"
4
+
5
+ child @collection[:results] => :results do
6
+ extends 'katello/api/v2/host_module_streams/base'
7
+ end
@@ -1,4 +1,3 @@
1
-
2
1
  attributes :description
3
2
  attributes :license, :buildhost, :vendor, :relativepath
4
3
  attributes :children, :checksumtype, :size, :url, :build_time, :summary, :group, :requires, :provides, :files
@@ -27,16 +27,16 @@ glue(@resource.root) do
27
27
  attributes :ignorable_content
28
28
  attributes :description
29
29
 
30
- child :ssl_ca_cert do
31
- attributes :id, :name
30
+ node :ssl_ca_cert do
31
+ attributes :id => @resource.root&.ssl_ca_cert&.id, :name => @resource.root&.ssl_ca_cert&.name
32
32
  end
33
33
 
34
- child :ssl_client_cert do
35
- attributes :id, :name
34
+ node :ssl_client_cert do
35
+ attributes :id => @resource.root&.ssl_client_cert&.id, :name => @resource.root&.ssl_client_cert&.name
36
36
  end
37
37
 
38
- child :ssl_client_key do
39
- attributes :id, :name
38
+ node :ssl_client_key do
39
+ attributes :id => @resource.root&.ssl_client_key&.id, :name => @resource.root&.ssl_client_key&.name
40
40
  end
41
41
 
42
42
  child :gpg_key do
@@ -1,9 +1,9 @@
1
1
  <% content_for(:stylesheets) do %>
2
- <%= stylesheet_link_tag *webpack_asset_paths('katello', :extension => 'css'), "data-turbolinks-track" => true %>
2
+ <%= webpacked_plugins_css_for :katello %>
3
3
  <% end %>
4
4
 
5
5
  <% content_for(:javascripts) do %>
6
- <%= javascript_include_tag *webpack_asset_paths('katello', :extension => 'js') %>
6
+ <%= webpacked_plugins_js_for :katello %>
7
7
  <% end %>
8
8
 
9
9
  <% content_for(:content) do %>
@@ -1,4 +1,3 @@
1
- <%= javascript "katello/hosts/host_and_hostgroup_edit" %>
2
1
  <%
3
2
  kickstart_repo_id = using_hostgroups_page? ? kickstart_repository_id(@hostgroup) : kickstart_repository_id(@host, :selected_host_group => @hostgroup)
4
3
  host = using_hostgroups_page? ? @hostgroup : @host
@@ -42,6 +42,7 @@ Katello::Engine.routes.draw do
42
42
  match '/deleted_consumers' => 'candlepin_proxies#get', :via => :get, :as => :proxy_deleted_consumers_path
43
43
  match '/entitlements/:id' => 'candlepin_proxies#get', :via => :get, :as => :proxy_entitlements_path
44
44
  match '/subscriptions' => 'candlepin_proxies#post', :via => :post, :as => :proxy_subscriptions_post_path
45
+ match '/consumers/:id/profiles/' => 'candlepin_dynflow_proxy#upload_profiles', :via => :put
45
46
  match '/consumers/:id/profile/' => 'candlepin_dynflow_proxy#upload_package_profile', :via => :put
46
47
  match '/consumers/:id/packages/' => 'candlepin_dynflow_proxy#upload_package_profile', :via => :put
47
48
  match '/consumers/:id/tracer/' => 'candlepin_proxies#upload_tracer_profile', :via => :put
@@ -92,6 +92,10 @@ Foreman::Application.routes.draw do
92
92
  end
93
93
  end
94
94
 
95
+ resources :module_streams, :only => [:index], :controller => :host_module_streams do
96
+ get :auto_complete_search, :on => :collection
97
+ end
98
+
95
99
  resources :subscriptions, :only => [:index], :controller => :host_subscriptions do
96
100
  collection do
97
101
  put :auto_attach
@@ -0,0 +1,29 @@
1
+ class AddModulesToErrataPackages < ActiveRecord::Migration[5.2]
2
+ def up
3
+ create_table :katello_module_stream_erratum_packages do |t|
4
+ t.references :module_stream, null: false, index: { name: :katello_msep_stream_idx }
5
+ t.references :erratum_package, null: false, index: { name: :katello_msep_erratum_package_idx }
6
+ t.timestamps
7
+ end
8
+ add_index :katello_module_stream_erratum_packages, [:module_stream_id, :erratum_package_id],
9
+ unique: true, name: :katello_module_stream_erratum_package_uniq
10
+
11
+ add_foreign_key :katello_module_stream_erratum_packages,
12
+ :katello_module_streams,
13
+ column: :module_stream_id,
14
+ name: :katello_msep_mod_stream_id_fk
15
+
16
+ add_foreign_key :katello_module_stream_erratum_packages,
17
+ :katello_erratum_packages,
18
+ column: :erratum_package_id,
19
+ name: :katello_msep_erratum_package_id_fk
20
+ change_column :katello_module_stream_erratum_packages, :created_at, :datetime, :null => true
21
+ change_column :katello_module_stream_erratum_packages, :updated_at, :datetime, :null => true
22
+ end
23
+
24
+ def down
25
+ remove_foreign_key :katello_module_stream_erratum_packages, name: :katello_msep_mod_stream_id_fk
26
+ remove_foreign_key :katello_module_stream_erratum_packages, name: :katello_msep_erratum_package_id_fk
27
+ drop_table :katello_module_stream_erratum_packages
28
+ end
29
+ end