katello 3.18.5 → 4.0.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 (239) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/katello/katello.scss +72 -0
  3. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +6 -4
  4. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +0 -19
  5. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -3
  6. data/app/controllers/katello/api/v2/content_credentials_controller.rb +24 -24
  7. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +1 -1
  8. data/app/controllers/katello/api/v2/content_exports_controller.rb +4 -0
  9. data/app/controllers/katello/api/v2/content_views_controller.rb +2 -2
  10. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +2 -3
  11. data/app/controllers/katello/api/v2/repositories_controller.rb +3 -19
  12. data/app/controllers/katello/api/v2/simple_content_access_controller.rb +34 -0
  13. data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
  14. data/app/controllers/katello/api/v2/upstream_subscriptions_controller.rb +8 -4
  15. data/app/controllers/katello/concerns/api/v2/authorization.rb +1 -14
  16. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +1 -1
  17. data/app/helpers/katello/sync_management_helper.rb +0 -2
  18. data/app/lib/actions/candlepin/environment/create.rb +1 -1
  19. data/app/lib/actions/candlepin/environment/set_content.rb +1 -1
  20. data/app/lib/actions/katello/activation_key/create.rb +9 -11
  21. data/app/lib/actions/katello/capsule_content/sync.rb +8 -8
  22. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +9 -0
  23. data/app/lib/actions/katello/check_matching_content.rb +17 -0
  24. data/app/lib/actions/katello/content_view/environment_create.rb +6 -8
  25. data/app/lib/actions/katello/content_view/publish.rb +1 -1
  26. data/app/lib/actions/katello/content_view_version/incremental_update.rb +11 -7
  27. data/app/lib/actions/katello/host/hypervisors_update.rb +4 -4
  28. data/app/lib/actions/katello/organization/create.rb +3 -5
  29. data/app/lib/actions/katello/organization/destroy.rb +1 -1
  30. data/app/lib/actions/katello/organization/manifest_delete.rb +3 -5
  31. data/app/lib/actions/katello/organization/manifest_import.rb +1 -1
  32. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -1
  33. data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +1 -1
  34. data/app/lib/actions/katello/repository/check_matching_content.rb +3 -1
  35. data/app/lib/actions/katello/repository/clone_contents.rb +8 -11
  36. data/app/lib/actions/katello/repository/create.rb +0 -8
  37. data/app/lib/actions/katello/repository/filtered_index_content.rb +3 -0
  38. data/app/lib/actions/katello/repository/index_content.rb +1 -0
  39. data/app/lib/actions/katello/repository/multi_clone_contents.rb +9 -12
  40. data/app/lib/actions/katello/repository/sync.rb +1 -5
  41. data/app/lib/actions/katello/repository/update.rb +0 -8
  42. data/app/lib/actions/middleware/execute_if_contents_changed.rb +4 -1
  43. data/app/lib/actions/pulp/orchestration/repository/refresh_repos.rb +0 -6
  44. data/app/lib/actions/pulp3/capsule_content/refresh_distribution.rb +3 -3
  45. data/app/lib/actions/pulp3/content_guard/refresh_all_distributions.rb +1 -2
  46. data/app/lib/actions/pulp3/content_migration_presenter.rb +2 -5
  47. data/app/lib/actions/pulp3/orchestration/repository/refresh_repos.rb +1 -6
  48. data/app/lib/katello/concerns/base_template_scope_extensions.rb +8 -0
  49. data/app/lib/katello/errors.rb +1 -1
  50. data/app/lib/katello/event_daemon/monitor.rb +53 -0
  51. data/app/lib/katello/event_daemon/runner.rb +99 -0
  52. data/app/lib/katello/logging.rb +32 -0
  53. data/app/lib/katello/messaging/connection.rb +1 -7
  54. data/app/lib/katello/util/pulpcore_content_filters.rb +1 -1
  55. data/app/lib/katello/validators/content_view_puppet_module_validator.rb +1 -1
  56. data/app/models/katello/activation_key.rb +2 -2
  57. data/app/models/katello/candlepin/repository_mapper.rb +1 -1
  58. data/app/models/katello/concerns/hostgroup_extensions.rb +2 -4
  59. data/app/models/katello/concerns/organization_extensions.rb +2 -2
  60. data/app/models/katello/concerns/pulp_database_unit.rb +0 -12
  61. data/app/models/katello/concerns/redhat_extensions.rb +8 -9
  62. data/app/models/katello/concerns/smart_proxy_extensions.rb +24 -0
  63. data/app/models/katello/content_view.rb +5 -1
  64. data/app/models/katello/content_view_environment.rb +2 -2
  65. data/app/models/katello/content_view_puppet_environment.rb +2 -2
  66. data/app/models/katello/content_view_version.rb +2 -1
  67. data/app/models/katello/content_view_version_export_history.rb +20 -0
  68. data/app/models/katello/erratum.rb +3 -1
  69. data/app/models/katello/file_unit.rb +0 -4
  70. data/app/models/katello/glue/candlepin/pool.rb +2 -0
  71. data/app/models/katello/glue/pulp/repo.rb +0 -6
  72. data/app/models/katello/glue/pulp/repos.rb +1 -22
  73. data/app/models/katello/host/content_facet.rb +31 -9
  74. data/app/models/katello/ping.rb +19 -39
  75. data/app/models/katello/pool.rb +5 -0
  76. data/app/models/katello/product.rb +3 -3
  77. data/app/models/katello/repository.rb +3 -3
  78. data/app/presenters/katello/host_subscription_presenter.rb +3 -4
  79. data/app/presenters/katello/host_subscriptions_presenter.rb +24 -0
  80. data/app/services/katello/applicability/applicable_content_helper.rb +6 -8
  81. data/app/services/katello/candlepin_event_listener.rb +11 -19
  82. data/app/services/katello/event_monitor/poller_thread.rb +2 -11
  83. data/app/services/katello/pulp/repository.rb +2 -4
  84. data/app/services/katello/pulp/smart_proxy_repository.rb +0 -15
  85. data/app/services/katello/pulp3/api/core.rb +0 -14
  86. data/app/services/katello/pulp3/erratum.rb +1 -2
  87. data/app/services/katello/pulp3/migration.rb +9 -83
  88. data/app/services/katello/pulp3/migration_plan.rb +5 -54
  89. data/app/services/katello/pulp3/migration_switchover.rb +5 -36
  90. data/app/services/katello/pulp3/repository/apt.rb +2 -1
  91. data/app/services/katello/pulp3/repository/yum.rb +2 -11
  92. data/app/services/katello/pulp3/repository.rb +13 -34
  93. data/app/services/katello/pulp3/rpm.rb +1 -5
  94. data/app/services/katello/pulp3/task.rb +5 -8
  95. data/app/services/katello/pulp3/task_group.rb +5 -13
  96. data/app/services/katello/repository_type.rb +1 -1
  97. data/app/views/foreman/smart_proxies/_content_tab.html.erb +4 -47
  98. data/app/views/foreman/smart_proxies/show.html.erb +1 -1
  99. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +22 -25
  100. data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +1 -0
  101. data/app/views/katello/api/v2/organizations/show.json.rabl +7 -9
  102. data/app/views/katello/sync_management/_products.html.erb +1 -1
  103. data/app/views/overrides/organizations/_edit_override.html.erb +1 -4
  104. data/app/views/overrides/smart_proxies/_environment_tab.html.erb +1 -1
  105. data/app/views/overrides/smart_proxies/_environment_tab_pane.html.erb +1 -1
  106. data/config/katello.yaml.example +0 -3
  107. data/config/routes/api/v2.rb +8 -10
  108. data/db/migrate/20191204214919_add_content_view_version_counts.rb +0 -1
  109. data/db/migrate/20200514092553_move_katello_fields_from_hostgroups.katello.rb +1 -1
  110. data/db/migrate/20210119162528_delete_puppet_and_ostree_repos.rb +56 -0
  111. data/db/migrate/20210128231228_add_type_and_from_cvv_to_cvv_export_history.rb +14 -0
  112. data/db/migrate/20210201163238_migrate_background_download_policy_to_migrate.rb +7 -0
  113. data/db/seeds.d/104-proxy.rb +1 -1
  114. data/db/seeds.d/111-upgrade_tasks.rb +2 -1
  115. data/engines/bastion/app/assets/javascripts/bastion/auth/authorization.service.js +1 -1
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +1 -1
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register-os-client.directive.js +17 -0
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -2
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-client.html +11 -4
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-deb-client.html +38 -0
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-oracle-client.html +5 -0
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register-sles-client.html +28 -0
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/register.html +14 -11
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/views/package-filter-details.html +2 -2
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +2 -2
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/download-policy.service.js +0 -1
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +1 -1
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +2 -2
  131. data/lib/katello/engine.rb +4 -5
  132. data/lib/katello/middleware/event_daemon.rb +1 -1
  133. data/lib/katello/permission_creator.rb +3 -2
  134. data/lib/katello/plugin.rb +2 -2
  135. data/lib/katello/tasks/jenkins.rake +1 -1
  136. data/lib/katello/tasks/pulp3_content_switchover.rake +20 -31
  137. data/lib/katello/tasks/pulp3_migration.rake +25 -45
  138. data/lib/katello/tasks/pulp3_migration_abort.rake +0 -8
  139. data/lib/katello/tasks/pulp3_migration_stats.rake +3 -46
  140. data/lib/katello/tasks/upgrades/4.0/remove_ostree_puppet_content.rake +16 -0
  141. data/lib/katello/version.rb +1 -1
  142. data/lib/proxy_api/container_gateway.rb +21 -0
  143. data/locale/bn/katello.edit.po +0 -0
  144. data/locale/cs/katello.edit.po +0 -0
  145. data/locale/de/katello.edit.po +0 -0
  146. data/locale/en/katello.edit.po +0 -0
  147. data/locale/es/katello.edit.po +0 -0
  148. data/locale/fr/katello.edit.po +0 -0
  149. data/locale/gu/katello.edit.po +0 -0
  150. data/locale/hi/katello.edit.po +0 -0
  151. data/locale/it/katello.edit.po +0 -0
  152. data/locale/ja/katello.edit.po +0 -0
  153. data/locale/kn/katello.edit.po +0 -0
  154. data/locale/ko/katello.edit.po +0 -0
  155. data/locale/mr/katello.edit.po +0 -0
  156. data/locale/or/katello.edit.po +0 -0
  157. data/locale/pa/katello.edit.po +0 -0
  158. data/locale/pt/katello.edit.po +0 -0
  159. data/locale/pt_BR/katello.edit.po +0 -0
  160. data/locale/ru/katello.edit.po +0 -0
  161. data/locale/ta/katello.edit.po +0 -0
  162. data/locale/te/katello.edit.po +0 -0
  163. data/locale/zh_CN/katello.edit.po +0 -0
  164. data/locale/zh_TW/katello.edit.po +0 -0
  165. data/package.json +1 -1
  166. data/webpack/__mocks__/foremanReact/Root/Context/ForemanContext.js +0 -1
  167. data/webpack/__mocks__/foremanReact/components/Pagination/PaginationHooks.js +2 -0
  168. data/webpack/__mocks__/foremanReact/components/common/dates/LongDateTime.js +5 -0
  169. data/webpack/{scenes/ContentViews/Details/Repositories → components/SelectableDropdown}/SelectableDropdown.js +20 -3
  170. data/webpack/components/SelectableDropdown/__tests__/SelectableDropdown.test.js +45 -0
  171. data/webpack/components/SelectableDropdown/index.js +3 -0
  172. data/webpack/components/Table/TableWrapper.js +2 -1
  173. data/webpack/components/Table/helpers.js +14 -0
  174. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +0 -1
  175. data/webpack/containers/Application/overrides.scss +6 -0
  176. data/webpack/index.js +6 -0
  177. data/webpack/redux/actions/RedHatRepositories/helpers.js +5 -5
  178. data/webpack/scenes/ContentViews/ContentViewsActions.js +31 -2
  179. data/webpack/scenes/ContentViews/ContentViewsConstants.js +5 -1
  180. data/webpack/scenes/ContentViews/Copy/ContentViewCopySelectors.js +16 -0
  181. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +77 -0
  182. data/webpack/scenes/ContentViews/Copy/CopyContentViewModal.js +44 -0
  183. data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +42 -0
  184. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +39 -0
  185. data/webpack/scenes/ContentViews/Copy/index.js +4 -0
  186. data/webpack/scenes/ContentViews/Create/ContentViewCreateSelectors.js +16 -0
  187. data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +58 -0
  188. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +175 -0
  189. data/webpack/scenes/ContentViews/Create/CreateContentViewModal.js +27 -0
  190. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +42 -0
  191. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +92 -0
  192. data/webpack/scenes/ContentViews/Create/index.js +4 -0
  193. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +16 -0
  194. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +20 -1
  195. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +17 -7
  196. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +19 -13
  197. data/webpack/scenes/ContentViews/Details/Filters/ContentType.js +40 -0
  198. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +124 -0
  199. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.fixtures.json +134 -0
  200. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +92 -0
  201. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +44 -25
  202. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.test.js +17 -7
  203. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +24 -0
  204. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +53 -3
  205. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +4 -3
  206. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +41 -0
  207. data/webpack/scenes/ContentViews/helpers.js +13 -0
  208. data/webpack/scenes/SmartProxy/Content.js +17 -0
  209. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +11 -0
  210. data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +3 -0
  211. data/webpack/scenes/SmartProxy/SmartProxyContentSelectors.js +16 -0
  212. data/webpack/scenes/SmartProxy/SmartProxyContentTable.js +152 -0
  213. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentResult.fixtures.json +140 -0
  214. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +38 -0
  215. data/webpack/scenes/SmartProxy/index.js +4 -0
  216. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +2 -7
  217. data/webpack/scenes/Subscriptions/Manifest/ManifestActions.js +3 -3
  218. data/webpack/scenes/Subscriptions/Manifest/__tests__/ManifestActions.test.js +2 -2
  219. data/webpack/scenes/Subscriptions/Manifest/__tests__/SimpleContentAccess.test.js +2 -2
  220. data/webpack/scenes/Subscriptions/Manifest/index.js +0 -1
  221. data/webpack/test-utils/react-testing-lib-wrapper.js +5 -2
  222. data/webpack/utils/helpers.js +3 -0
  223. metadata +103 -63
  224. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +0 -114
  225. data/app/lib/actions/pulp3/content_migration_reset.rb +0 -22
  226. data/app/lib/katello/util/hostgroup_facets_helper.rb +0 -126
  227. data/app/overrides/disable_turbolinks_on_proxies_index.rb +0 -5
  228. data/app/services/katello/event_daemon.rb +0 -135
  229. data/app/services/katello/pulp/content_counts_calculator.rb +0 -60
  230. data/db/migrate/20210201165835_add_migration_missing_content.rb +0 -12
  231. data/db/migrate/20210420140050_add_pulp3_hrefs_to_content_types_deb.rb +0 -5
  232. data/lib/katello/tasks/check_config.rake +0 -11
  233. data/lib/katello/tasks/fix_hostgroup_facets.rake +0 -8
  234. data/lib/katello/tasks/pulp3_migration_approve_corrupted.rake +0 -21
  235. data/lib/katello/tasks/pulp3_migration_reset.rake +0 -26
  236. data/lib/katello/tasks/reports.rake +0 -7
  237. data/lib/katello/tasks/upgrades/3.10/update_gpg_key_urls.rake +0 -32
  238. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.scss +0 -5
  239. data/webpack/scenes/ContentViews/Table/actionResolver.js +0 -28
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 625ecabd197fcf1e9562afe5ab95076a78aad73960543c9804d0510f36bfc398
4
- data.tar.gz: 0a6c82ff085f980e9d028a9734f3d071fa5324e6354b0c45b49406bf4400783c
3
+ metadata.gz: 3942a71eb36eb3e5c9e6adcf139e30a2443a038eea11c417e55c6b590580465f
4
+ data.tar.gz: f59fa795ac9c2298450020e4c8f90409691374acc1f09e1c49a88e661d06cdd6
5
5
  SHA512:
6
- metadata.gz: ff6a670562b076e29b4112e22b8575ae0fbc8a1864377ea538e642207a9b78e574e1bcffb9c611f61691303fb9f5b8a56e80dda96b6391d96ab836b8cfc5ab7c
7
- data.tar.gz: f8b4a6bb32933ef5a12ebc1dab3e1e06b023c39834b9fd58dad920912ce84f25ac6974cad9611ae6d6cd87b4b2bbd45d38d71604bf42d5ebb8be72f5b93f3293
6
+ metadata.gz: ff801d6c4540553020d70162d030def3a7782771f58fe8e85a81def49dd1abdb4abeab3b039ce56a2741636e745bba0887e0713ae534809e952ab0fc0482ba23
7
+ data.tar.gz: 4920f4ab7232331cc2d79a56f05625811a71f334e8909bab61a7d74cbbb8fbf345a9394a888bf44ca94dac9ae17dd4f53a069f6a7fd822926377dd8b9dc1c6ed
@@ -163,6 +163,78 @@ input:focus {
163
163
  @extend .status_exclamation_icon;
164
164
  }
165
165
 
166
+ /* BUTTONS */
167
+ input[type='submit'], button, .button {
168
+ font-size: 10px;
169
+ display: inline-block;
170
+ vertical-align: bottom;
171
+ background: -moz-linear-gradient(top, #f9f9f9, #f0f0f0, #e5e5e5, #e9e9e9);
172
+ background: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), color-stop(0.9, #e5e5e5), to(#e9e9e9));
173
+ box-shadow: none;
174
+ border: 1px solid darken($stroke_color, 20%);
175
+ color: #221e1f;
176
+ cursor: pointer;
177
+ padding: 4px 8px;
178
+ border-radius: 5px;
179
+ text-shadow: 0 1px 0 rgba($white_color, 1);
180
+ min-height: 14px;
181
+ .nomargin {
182
+ margin: 0;
183
+ }
184
+ &:hover {
185
+ background: -moz-linear-gradient(top, $white_color, $white_color, #cfcfcf);
186
+ background: -webkit-gradient(linear, left top, left bottom, from($white_color), color-stop(0.6, $white_color), to(#cfcfcf));
187
+ box-shadow: 0 1px 2px rgba(0,0,0,0.5);
188
+ text-decoration: none;
189
+ color: black;
190
+ }
191
+ &:active {
192
+ background: -moz-linear-gradient(top, #c2c3c0, #e4e5e4);
193
+ background: -webkit-gradient(linear, left top, left bottom, from(#c2c3c0), to(#e4e5e4));
194
+ box-shadow: none;
195
+ text-decoration: none;
196
+ }
197
+ &:focus {
198
+ text-decoration: none;
199
+ color: #000;
200
+ border-width: 2px;
201
+ }
202
+ &.dialogbutton {
203
+ float: right;
204
+ margin-left: 3px;
205
+ margin: 40px 4px 4px;
206
+ }
207
+ &.formbutton {
208
+ display: inline-block;
209
+ margin-left: 3px;
210
+ margin: 40px 4px 4px;
211
+ }
212
+ &.actionlink {
213
+ margin: 40px 0 0;
214
+ }
215
+ &.disabled, &[disabled] {
216
+ cursor: default;
217
+ background: transparent;
218
+ opacity: 0.4;
219
+
220
+ &:hover {
221
+ background: transparent;
222
+ box-shadow: none;
223
+ }
224
+ }
225
+ &.iconbutton {
226
+ display: inline-block;
227
+ }
228
+ &.tiny {
229
+ padding: 4px;
230
+ margin: 0;
231
+ &:active, &:focus {
232
+ margin: 0;
233
+ padding: 3px;
234
+ }
235
+ }
236
+ }
237
+
166
238
  table {
167
239
  border-collapse: collapse;
168
240
  border: 1px solid $stroke_color;
@@ -167,9 +167,11 @@ module Katello
167
167
  end
168
168
 
169
169
  if (manifest_response = redirect_client { Resources::Registry::Proxy.get(@_request.fullpath, headers) })
170
- #for some requests, we get a redirect, but for others we get the actual manifest in response
170
+ #when pulp 2 is removed, this should no longer be needed, and all clients should be redirected
171
+ logger.debug filter_sensitive_data(manifest_response)
171
172
  results = JSON.parse(manifest_response)
172
- response.header['Docker-Content-Digest'] = manifest_response.headers[:docker_content_digest]
173
+
174
+ response.header['Docker-Content-Digest'] = "sha256:#{Digest::SHA256.hexdigest(manifest_response)}"
173
175
  # https://docs.docker.com/registry/spec/manifest-v2-2/
174
176
  # If its v2 schema 2 only the mediaType attribute will be present in the manifest
175
177
  media_type = results['mediaType']
@@ -182,8 +184,8 @@ module Katello
182
184
  'application/vnd.docker.distribution.manifest.v1+prettyjws'
183
185
  end
184
186
  end
185
- response.headers['Content-Type'] = media_type
186
- render json: manifest_response
187
+
188
+ render json: manifest_response, content_type: media_type
187
189
  end
188
190
  end
189
191
 
@@ -4,8 +4,6 @@ module Katello
4
4
  include ForemanTasks::Triggers
5
5
  include AbstractController::Callbacks
6
6
 
7
- before_action :deprecated, only: :deb_package_profile
8
-
9
7
  skip_before_action :authorize, :only => [:upload_package_profile, :upload_profiles, :deb_package_profile]
10
8
  before_action :find_host, :only => [:upload_package_profile, :upload_profiles, :deb_package_profile]
11
9
  before_action :authorize_client_or_user, :only => [:upload_package_profile, :upload_profiles, :deb_package_profile]
@@ -31,19 +29,6 @@ module Katello
31
29
  render :json => Resources::Candlepin::Consumer.get(@host.subscription_facet.uuid)
32
30
  end
33
31
 
34
- api :PUT, "/systems/:id/deb_package_profile", N_("Update installed deb packages")
35
- param :deb_package_profile, Hash, :required => true do
36
- param :deb_packages, Array, :required => true do
37
- param :name, String, :required => true
38
- param :architecture, String, :required => true
39
- param :version, String, :required => true
40
- end
41
- end
42
- param :id, String, :desc => N_("UUID of the system"), :required => true
43
- def deb_package_profile
44
- upload_profiles
45
- end
46
-
47
32
  def find_host(uuid = nil)
48
33
  params = request.path_parameters
49
34
  uuid ||= params[:id]
@@ -65,9 +50,5 @@ module Katello
65
50
  authorized = (User.current.uuid == @host.subscription_facet.uuid) if @host && User.consumer?
66
51
  authorized
67
52
  end
68
-
69
- def deprecated
70
- ::Foreman::Deprecation.api_deprecation_warning("it will be removed in Katello 4.0. Please use /consumers/:id/profiles instead.")
71
- end
72
53
  end
73
54
  end
@@ -41,8 +41,6 @@ module Katello
41
41
  body_json['displayMessage'] = body_json['message']
42
42
  end
43
43
  response.body = body_json.to_s
44
-
45
- # rubocop:disable Lint/SuppressedException
46
44
  rescue JSON::ParserError
47
45
  # Not a json response, leave as-is
48
46
  end
@@ -370,7 +368,7 @@ module Katello
370
368
 
371
369
  if (ak_names = params[:activation_keys])
372
370
  fail HttpErrors::NotFound, _("Organization not found") if organization.nil?
373
- ak_names = ak_names.split(",")
371
+ ak_names = ak_names.split(",").uniq.compact
374
372
  activation_keys = ak_names.map do |ak_name|
375
373
  activation_key = organization.activation_keys.find_by(:name => ak_name)
376
374
  fail HttpErrors::NotFound, _("Couldn't find activation key '%s'") % ak_name unless activation_key
@@ -10,9 +10,9 @@ module Katello
10
10
  end
11
11
 
12
12
  def_param_group :content_credential do
13
- param :name, :identifier, :action_aware => true, :required => true, :desc => N_("identifier of the content credential")
14
- param :content_type, String, :action_aware => true, :required => true, :desc => N_("type of content")
15
- param :content, String, :action_aware => true, :required => true, :desc => N_("public key block in DER encoding or certificate content")
13
+ param :name, :identifier, :action_aware => true, :required => true, :desc => N_('Name of the Content Credential')
14
+ param :content_type, String, :action_aware => true, :required => true, :desc => N_('Type of content: "cert", "gpg_key"')
15
+ param :content, String, :action_aware => true, :required => true, :desc => N_('Public key block in DER encoding or certificate content')
16
16
  end
17
17
 
18
18
  resource_description do
@@ -22,13 +22,13 @@ module Katello
22
22
  Content Credentials are used to store credentials like GPG Keys and Certificates for the authentication
23
23
  to Products / Repositories.
24
24
  DESC
25
- api_version "v2"
25
+ api_version 'v2'
26
26
  end
27
27
 
28
- api :GET, "/content_credentials", N_("List content credentials")
29
- param :organization_id, :number, :desc => N_("organization identifier"), :required => true
30
- param :name, String, :desc => N_("name of the Content Credential"), :required => false
31
- param :content_type, String, :desc => N_("type of content"), :required => false
28
+ api :GET, "/content_credentials", N_('List Content Credentials')
29
+ param :organization_id, :number, :desc => N_('Organization identifier'), :required => true
30
+ param :name, String, :desc => N_('Name of the Content Credential'), :required => false
31
+ param :content_type, String, :desc => N_('Type of content'), :required => false
32
32
  param_group :search, Api::V2::ApiController
33
33
  def index
34
34
  respond(:collection => scoped_search(index_relation.distinct, :name, :asc))
@@ -41,15 +41,15 @@ module Katello
41
41
  query
42
42
  end
43
43
 
44
- api :POST, "/content_credentials", N_("Create a content credential")
45
- param :organization_id, :number, :desc => N_("organization identifier"), :required => true
44
+ api :POST, "/content_credentials", N_('Create a Content Credential')
45
+ param :organization_id, :number, :desc => N_('Organization identifier'), :required => true
46
46
  param_group :content_credential, :as => :create
47
47
  def create
48
48
  filepath = params.try(:[], :file_path).try(:path)
49
49
 
50
50
  content = nil
51
51
  if filepath
52
- content = File.open(filepath, "rb") { |file| file.read }
52
+ content = File.open(filepath, 'rb') { |file| file.read }
53
53
  else
54
54
  content = params[:content]
55
55
  end
@@ -58,45 +58,45 @@ module Katello
58
58
  respond_for_create(:resource => content_credential)
59
59
  end
60
60
 
61
- api :GET, "/content_credentials/:id", N_("Show a content credential")
62
- param :id, :number, :desc => N_("content credential numeric identifier"), :required => true
61
+ api :GET, "/content_credentials/:id", N_('Show a Content Credential')
62
+ param :id, :number, :desc => N_('Content Credential numeric identifier'), :required => true
63
63
  def show
64
64
  respond_for_show(:resource => @content_credential)
65
65
  end
66
66
 
67
- api :PUT, "/content_credentials/:id", N_("Update a content credential")
68
- param :id, :number, :desc => N_("content credential numeric identifier"), :required => true
67
+ api :PUT, "/content_credentials/:id", N_('Update a Content Credential')
68
+ param :id, :number, :desc => N_('Content Credential ID'), :required => true
69
69
  param_group :content_credential
70
70
  def update
71
71
  sync_task(::Actions::Katello::GpgKey::Update, @content_credential, content_credential_params.to_h)
72
72
  respond_for_show(:resource => @content_credential)
73
73
  end
74
74
 
75
- api :DELETE, "/content_credentials/:id", N_("Destroy a content credential")
76
- param :id, :number, :desc => N_("content credential numeric identifier"), :required => true
75
+ api :DELETE, "/content_credentials/:id", N_('Destroy a Content Credential')
76
+ param :id, :number, :desc => N_('Content Credential ID'), :required => true
77
77
  def destroy
78
78
  @content_credential.destroy
79
79
  respond_for_destroy
80
80
  end
81
81
 
82
- api :GET, "/content_credentials/:id/content", N_("Return the content of a content credential, used directly by yum")
82
+ api :GET, "/content_credentials/:id/content", N_('Return the content of a Content Credential, used directly by yum')
83
83
  param :id, :number, :required => true
84
84
  def content
85
85
  render(:plain => @content_credential.content, :layout => false)
86
86
  end
87
87
 
88
- api :POST, "/content_credentials/:id/content", N_("Upload content credential contents")
89
- param :id, :number, :desc => N_("content credential numeric identifier"), :required => true
90
- param :content, File, :desc => N_("file contents"), :required => true
88
+ api :POST, "/content_credentials/:id/content", N_('Upload Content Credential contents')
89
+ param :id, :number, :desc => N_('Content Credential ID'), :required => true
90
+ param :content, File, :desc => N_('File contents'), :required => true
91
91
  def set_content
92
92
  filepath = params.try(:[], :content).try(:path)
93
93
 
94
94
  if filepath
95
- content = File.open(filepath, "rb") { |file| file.read }
95
+ content = File.open(filepath, 'rb') { |file| file.read }
96
96
  @content_credential.update!(:content => content)
97
- render :json => {:status => "success"}
97
+ render :json => {:status => 'success'}
98
98
  else
99
- fail HttpErrors::BadRequest, _("No file uploaded")
99
+ fail HttpErrors::BadRequest, _('No file uploaded')
100
100
  end
101
101
  end
102
102
 
@@ -58,7 +58,7 @@ module Katello
58
58
  organization: @organization,
59
59
  create_by_default: false)
60
60
  if @view.blank?
61
- msg = _("Unable to incrementally export. Do a Full Export the library content "\
61
+ msg = _("Unable to incrementally export. Do a Full Export on the library content "\
62
62
  "before updating from the latest increment.")
63
63
  fail HttpErrors::BadRequest, msg
64
64
  end
@@ -10,6 +10,9 @@ module Katello
10
10
  param :destination_server, String, :desc => N_("Destination Server name"), :required => false
11
11
  param :organization_id, :number, :desc => N_("Organization identifier"), :required => false
12
12
  param :id, :number, :desc => N_("Content view version export history identifier"), :required => false
13
+ param :type, ::Katello::ContentViewVersionExportHistory::EXPORT_TYPES,
14
+ :desc => N_("Export Types"),
15
+ :required => false
13
16
  param_group :search, Api::V2::ApiController
14
17
  add_scoped_search_description_for(ContentViewVersionExportHistory)
15
18
  def index
@@ -17,6 +20,7 @@ module Katello
17
20
  history = history.where(:id => params[:id]) unless params[:id].blank?
18
21
  history = history.where(:content_view_version_id => params[:content_view_version_id]) unless params[:content_view_version_id].blank?
19
22
  history = history.where(:destination_server => params[:destination_server]) unless params[:destination_server].blank?
23
+ history = history.where(:export_type => params[:type]) unless params[:type].blank?
20
24
  history = history.with_organization_id(params[:organization_id]) unless params[:organization_id].blank?
21
25
  history = history.with_content_view_id(params[:content_view_id]) unless params[:content_view_id].blank?
22
26
  respond_with_template_collection("index", 'content_view_version_export_histories',
@@ -190,8 +190,8 @@ module Katello
190
190
 
191
191
  api :PUT, "/content_views/:id/remove", N_("Remove versions and/or environments from a content view and reassign systems and keys")
192
192
  param :id, :number, :desc => N_("content view numeric identifier"), :required => true
193
- param :environment_ids, :number, :desc => N_("environment numeric identifiers to be removed")
194
- param :content_view_version_ids, :number, :desc => N_("content view version identifiers to be deleted")
193
+ param :environment_ids, Array, of: :number, :desc => N_("environment numeric identifiers to be removed")
194
+ param :content_view_version_ids, Array, of: :number, :desc => N_("content view version identifiers to be deleted")
195
195
  param :system_content_view_id, :number, :desc => N_("content view to reassign orphaned systems to")
196
196
  param :system_environment_id, :number, :desc => N_("environment to reassign orphaned systems to")
197
197
  param :key_content_view_id, :number, :desc => N_("content view to reassign orphaned activation keys to")
@@ -42,9 +42,8 @@ module Katello
42
42
  def index_response(reload_host = false)
43
43
  # Host needs to be reloaded because of lazy accessor
44
44
  @host.reload if reload_host
45
- entitlements = @host.subscription_facet.candlepin_consumer.entitlements
46
- subscriptions = entitlements.map { |entitlement| ::Katello::HostSubscriptionPresenter.new(entitlement) }
47
- full_result_response(subscriptions)
45
+ presenter = ::Katello::HostSubscriptionsPresenter.new(@host)
46
+ full_result_response(presenter.subscriptions)
48
47
  end
49
48
 
50
49
  api :PUT, "/hosts/:host_id/subscriptions/auto_attach", N_("Trigger an auto-attach of subscriptions")
@@ -25,7 +25,6 @@ module Katello
25
25
  before_action(:only => [:create, :update]) { find_content_credential CONTENT_CREDENTIAL_SSL_CA_CERT_TYPE }
26
26
  before_action(:only => [:create, :update]) { find_content_credential CONTENT_CREDENTIAL_SSL_CLIENT_CERT_TYPE }
27
27
  before_action(:only => [:create, :update]) { find_content_credential CONTENT_CREDENTIAL_SSL_CLIENT_KEY_TYPE }
28
- before_action :check_ignore_global_proxy, :only => [ :update, :create ]
29
28
  skip_before_action :authorize, :only => [:gpg_key_content]
30
29
  skip_before_action :check_media_type, :only => [:upload_content]
31
30
 
@@ -45,7 +44,7 @@ module Katello
45
44
  param :checksum_type, String, :desc => N_("Checksum of the repository, currently 'sha1' & 'sha256' are supported")
46
45
  param :docker_upstream_name, String, :desc => N_("Name of the upstream docker repository")
47
46
  param :docker_tags_whitelist, Array, :desc => N_("Comma-separated list of tags to sync for Container Image repository")
48
- param :download_policy, ["immediate", "on_demand", "background"], :desc => N_("download policy for yum repos (either 'immediate', 'on_demand', or 'background (deprecated)')")
47
+ param :download_policy, ["immediate", "on_demand"], :desc => N_("download policy for yum repos (either 'immediate' or 'on_demand')")
49
48
  param :download_concurrency, :number, :desc => N_("Used to determine download concurrency of the repository in pulp3. Use value less than 20. Defaults to 10")
50
49
  param :mirror_on_sync, :bool, :desc => N_("true if this repository when synced has to be mirrored from the source and stale rpms removed")
51
50
  param :verify_ssl_on_sync, :bool, :desc => N_("if true, Katello will verify the upstream url's SSL certifcates are signed by a trusted CA")
@@ -56,11 +55,11 @@ module Katello
56
55
  param :deb_releases, String, :desc => N_("comma-separated list of releases to be synced from deb-archive")
57
56
  param :deb_components, String, :desc => N_("comma-separated list of repo components to be synced from deb-archive")
58
57
  param :deb_architectures, String, :desc => N_("comma-separated list of architectures to be synced from deb-archive")
59
- param :ignore_global_proxy, :bool, :desc => N_("if true, will ignore the globally configured proxy when syncing"), :deprecated => true
60
58
  param :ignorable_content, Array, :desc => N_("List of content units to ignore while syncing a yum repository. Must be subset of %s") % RootRepository::IGNORABLE_CONTENT_UNIT_TYPES.join(",")
61
59
  param :ansible_collection_requirements, String, :desc => N_("Contents of requirement yaml file to sync from URL")
62
60
  param :http_proxy_policy, ::Katello::RootRepository::HTTP_PROXY_POLICIES, :desc => N_("policies for HTTP proxy for content sync")
63
61
  param :http_proxy_id, :number, :desc => N_("ID of a HTTP Proxy")
62
+ param :arch, String, :desc => N_("Architecture of content in the repository")
64
63
  end
65
64
 
66
65
  def_param_group :repo_create do
@@ -226,10 +225,6 @@ module Katello
226
225
  fail HttpErrors::UnprocessableEntity, msg
227
226
  end
228
227
 
229
- if repo_params['content_type'] == "puppet" || repo_params['content_type'] == "ostree"
230
- ::Foreman::Deprecation.api_deprecation_warning("Puppet and OSTree will no longer be supported in Katello 4.0")
231
- end
232
-
233
228
  gpg_key = get_content_credential(repo_params, CONTENT_CREDENTIAL_GPG_KEY_TYPE)
234
229
  ssl_ca_cert = get_content_credential(repo_params, CONTENT_CREDENTIAL_SSL_CA_CERT_TYPE)
235
230
  ssl_client_cert = get_content_credential(repo_params, CONTENT_CREDENTIAL_SSL_CLIENT_CERT_TYPE)
@@ -495,17 +490,6 @@ module Katello
495
490
  params.require(:repository).permit(*keys).to_h.with_indifferent_access
496
491
  end
497
492
 
498
- def check_ignore_global_proxy
499
- if params.key?(:ignore_global_proxy)
500
- ::Foreman::Deprecation.api_deprecation_warning("The parameter ignore_global_proxy will be removed in a future Katello release. Please update to use the http_proxy_policy parameter.")
501
- if ::Foreman::Cast.to_bool(params[:ignore_global_proxy])
502
- params[:repository][:http_proxy_policy] = RootRepository::NO_DEFAULT_HTTP_PROXY
503
- else
504
- params[:repository][:http_proxy_policy] = RootRepository::GLOBAL_DEFAULT_HTTP_PROXY
505
- end
506
- end
507
- end
508
-
509
493
  def get_content_credential(repo_params, content_type)
510
494
  credential_value = @product.send(content_type)
511
495
 
@@ -517,7 +501,7 @@ module Katello
517
501
  end
518
502
 
519
503
  # rubocop:disable Metrics/CyclomaticComplexity
520
- def construct_repo_from_params(repo_params)
504
+ def construct_repo_from_params(repo_params) # rubocop:disable Metrics/AbcSize
521
505
  root = @product.add_repo(repo_params.slice(:label, :name, :description, :url, :content_type, :arch, :unprotected,
522
506
  :gpg_key, :ssl_ca_cert, :ssl_client_cert, :ssl_client_key,
523
507
  :checksum_type, :download_policy, :http_proxy_policy).to_h.with_indifferent_access)
@@ -0,0 +1,34 @@
1
+ module Katello
2
+ class Api::V2::SimpleContentAccessController < Api::V2::ApiController
3
+ before_action :find_organization
4
+ before_action :check_upstream_connection
5
+
6
+ resource_description do
7
+ description "Red Hat subscriptions management platform."
8
+ api_version 'v2'
9
+ end
10
+
11
+ api :GET, "/organizations/:organization_id/simple_content_access/eligible",
12
+ N_("Check if the specified organization is eligible for Simple Content Access")
13
+ def eligible
14
+ eligible = @organization.upstream_consumer.simple_content_access_eligible?
15
+ render json: { simple_content_access_eligible: eligible }
16
+ end
17
+
18
+ api :PUT, "/organizations/:organization_id/simple_content_access/enable",
19
+ N_("Enable simple content access for a manifest")
20
+ param :organization_id, :number, :desc => N_("Organization ID"), :required => true
21
+ def enable
22
+ task = async_task(::Actions::Katello::Organization::SimpleContentAccess::Enable, params[:organization_id])
23
+ respond_for_async :resource => task
24
+ end
25
+
26
+ api :PUT, "/organizations/:organization_id/simple_content_access/disable",
27
+ N_("Disable simple content access for a manifest")
28
+ param :organization_id, :number, :desc => N_("Organization ID"), :required => true
29
+ def disable
30
+ task = async_task(::Actions::Katello::Organization::SimpleContentAccess::Disable, params[:organization_id])
31
+ respond_for_async :resource => task
32
+ end
33
+ end
34
+ end
@@ -41,7 +41,7 @@ module Katello
41
41
  :start_date, :end_date, :available, :quantity, :account_number, :contract_number,
42
42
  :support_level, :ram, :stacking_id, :multi_entitlement, :type, :product_id,
43
43
  :unmapped_guest, :virt_only, :virt_who, :upstream?],
44
- ['Pool Id', 'Subscription Id', 'Name', 'Candlepin Id', 'Organization Id',
44
+ ['Pool Id Number', 'Subscription Id', 'Name', 'Pool Id', 'Organization Id',
45
45
  'Sockets', 'Cores', 'Start Date', 'End Date', 'Available', 'Quantity', 'Account Number',
46
46
  'Contract Number', 'Support Level', 'RAM', 'Stacking Id', 'Multi Entitlement', 'Type',
47
47
  'Product Id', 'Unmapped Guest', 'Virt Only', 'Requires Virt Who', 'Upstream'])
@@ -2,7 +2,7 @@ module Katello
2
2
  class Api::V2::UpstreamSubscriptionsController < Api::V2::ApiController
3
3
  before_action :find_organization
4
4
  before_action :check_upstream_connection
5
-
5
+ before_action :deprecated, only: [:simple_content_access_eligible, :enable_simple_content_access, :disable_simple_content_access]
6
6
  resource_description do
7
7
  description "Red Hat subscriptions management platform."
8
8
  api_version 'v2'
@@ -78,14 +78,14 @@ module Katello
78
78
  end
79
79
 
80
80
  api :GET, "/organizations/:organization_id/upstream_subscriptions/simple_content_access/eligible",
81
- N_("Check if the specified organization is eligible for Simple Content Access")
81
+ N_("Check if the specified organization is eligible for Simple Content Access"), :deprecated => true
82
82
  def simple_content_access_eligible
83
83
  eligible = @organization.upstream_consumer.simple_content_access_eligible?
84
84
  render json: { simple_content_access_eligible: eligible }
85
85
  end
86
86
 
87
87
  api :PUT, "/organizations/:organization_id/upstream_subscriptions/simple_content_access/enable",
88
- N_("Enable simple content access for a manifest")
88
+ N_("Enable simple content access for a manifest"), :deprecated => true
89
89
  param :organization_id, :number, :desc => N_("Organization ID"), :required => true
90
90
  def enable_simple_content_access
91
91
  task = async_task(::Actions::Katello::Organization::SimpleContentAccess::Enable, params[:organization_id])
@@ -93,7 +93,7 @@ module Katello
93
93
  end
94
94
 
95
95
  api :PUT, "/organizations/:organization_id/upstream_subscriptions/simple_content_access/disable",
96
- N_("Disable simple content access for a manifest")
96
+ N_("Disable simple content access for a manifest"), :deprecated => true
97
97
  param :organization_id, :number, :desc => N_("Organization ID"), :required => true
98
98
  def disable_simple_content_access
99
99
  task = async_task(::Actions::Katello::Organization::SimpleContentAccess::Disable, params[:organization_id])
@@ -124,5 +124,9 @@ module Katello
124
124
  { "pool" => pool[:id], "quantity" => pool[:quantity] } if pool
125
125
  end
126
126
  end
127
+
128
+ def deprecated
129
+ ::Foreman::Deprecation.api_deprecation_warning("it will be removed in Katello 4.0, Please see /api/v2/simple_content_access")
130
+ end
127
131
  end
128
132
  end
@@ -39,20 +39,7 @@ module Katello
39
39
  end
40
40
 
41
41
  def throw_resource_not_found(name: resource_name, id: params[:id])
42
- perms_message = "Potential missing permissions: " +
43
- missing_permissions.map(&:name).join(', ')
44
- fail HttpErrors::NotFound, _("Could not find %{name} resource with id %{id}. %{perms_message}") % {id: id, name: name, perms_message: perms_message}
45
- end
46
-
47
- def missing_permissions
48
- missing_perms = ::Foreman::AccessControl.permissions_for_controller_action(path_to_authenticate)
49
-
50
- # promote_or_remove_content_views_to_environments has a special relationship to promote_or_remove_content_views
51
- if path_to_authenticate["controller"] == "katello/api/v2/content_view_versions" &&
52
- path_to_authenticate["action"].in?(["promote", "remove_from_environment", "remove", "republish_repositories"])
53
- missing_perms << ::Permission.find_by(name: "promote_or_remove_content_views_to_environments")
54
- end
55
- missing_perms
42
+ fail HttpErrors::NotFound, _("Could not find %{name} resource with id %{id}") % {id: id, name: name}
56
43
  end
57
44
 
58
45
  def throw_resources_not_found(name:, expected_ids: [])
@@ -107,7 +107,7 @@ module Katello
107
107
  true
108
108
  end
109
109
 
110
- def authorize_remove_environments(view, options)
110
+ def authorize_remove_environments(view, options) # rubocop:disable Metrics/CyclomaticComplexity
111
111
  env_ids = options[:environment_ids]
112
112
 
113
113
  return true if env_ids.blank?
@@ -35,8 +35,6 @@ module Katello
35
35
  module RepoMethods
36
36
  # returns all repos in hash representation with minors and arch children included
37
37
  def collect_repos(products, env, include_feedless = true)
38
- Glue::Pulp::Repos.prepopulate! products, env, []
39
-
40
38
  products.map do |prod|
41
39
  minor_repos, repos_without_minor = collect_minor(prod.repos(env, nil, include_feedless))
42
40
  { :name => prod.name, :object => prod, :id => prod.id, :type => "product", :repos => repos_without_minor,
@@ -13,7 +13,7 @@ module Actions
13
13
  ::Katello::Resources::Candlepin::Environment.create(input['organization_label'],
14
14
  input['cp_id'],
15
15
  input['name'],
16
- input['description'])
16
+ input['description'].try(:truncate, 255))
17
17
  end
18
18
  end
19
19
  end
@@ -9,7 +9,7 @@ module Actions
9
9
  :new_content_id => new_content_id)
10
10
  end
11
11
 
12
- def finalize
12
+ def finalize # rubocop:disable Metrics/AbcSize
13
13
  content_view = ::Katello::ContentView.find(input[:content_view_id])
14
14
  environment = ::Katello::KTEnvironment.find(input[:environment_id])
15
15
  content_ids = content_view.repos(environment).map(&:content_id).uniq.compact
@@ -4,17 +4,15 @@ module Actions
4
4
  class Create < Actions::EntryAction
5
5
  def plan(activation_key, params = {})
6
6
  activation_key.save!
7
- if ::SETTINGS[:katello][:use_cp]
8
- cp_create = plan_action(Candlepin::ActivationKey::Create,
9
- organization_label: activation_key.organization.label,
10
- auto_attach: activation_key.auto_attach,
11
- service_level: params[:service_level],
12
- release_version: activation_key.release_version,
13
- purpose_role: activation_key.purpose_role,
14
- purpose_usage: activation_key.purpose_usage,
15
- purpose_addons: activation_key.purpose_addons.pluck(:name))
16
- cp_id = cp_create.output[:response][:id]
17
- end
7
+ cp_create = plan_action(Candlepin::ActivationKey::Create,
8
+ organization_label: activation_key.organization.label,
9
+ auto_attach: activation_key.auto_attach,
10
+ service_level: params[:service_level],
11
+ release_version: activation_key.release_version,
12
+ purpose_role: activation_key.purpose_role,
13
+ purpose_usage: activation_key.purpose_usage,
14
+ purpose_addons: activation_key.purpose_addons.pluck(:name))
15
+ cp_id = cp_create.output[:response][:id]
18
16
  action_subject(activation_key, :cp_id => cp_id)
19
17
  plan_self
20
18
  end
@@ -30,18 +30,18 @@ module Actions
30
30
 
31
31
  fail _("Action not allowed for the default smart proxy.") if smart_proxy.pulp_primary?
32
32
 
33
- smart_proxy_helper = ::Katello::SmartProxyHelper.new(smart_proxy)
34
- repositories = smart_proxy_helper.combined_repos_available_to_capsule(environment, content_view, repository)
35
-
36
- smart_proxy.ping_pulp if repositories.any? { |repo| !smart_proxy.pulp3_support?(repo) }
37
-
38
33
  refresh_options = options.merge(content_view: content_view,
39
34
  environment: environment,
40
35
  repository: repository)
41
36
  sequence do
42
- plan_action(Actions::Pulp::Orchestration::Repository::RefreshRepos, smart_proxy, refresh_options) if smart_proxy.has_feature?(SmartProxy::PULP_NODE_FEATURE)
43
- plan_action(Actions::Pulp3::CapsuleContent::RefreshContentGuard, smart_proxy) if repositories.any? { |repo| smart_proxy.pulp3_support?(repo) }
44
- plan_action(Actions::Pulp3::Orchestration::Repository::RefreshRepos, smart_proxy, refresh_options) if smart_proxy.pulp3_enabled?
37
+ if smart_proxy.has_feature?(SmartProxy::PULP_NODE_FEATURE)
38
+ plan_action(Actions::Pulp::Orchestration::Repository::RefreshRepos, smart_proxy, refresh_options)
39
+ end
40
+
41
+ if smart_proxy.has_feature?(SmartProxy::PULP3_FEATURE)
42
+ plan_action(Actions::Pulp3::CapsuleContent::RefreshContentGuard, smart_proxy)
43
+ plan_action(Actions::Pulp3::Orchestration::Repository::RefreshRepos, smart_proxy, refresh_options)
44
+ end
45
45
  plan_action(SyncCapsule, smart_proxy, refresh_options)
46
46
  end
47
47
  end
@@ -35,6 +35,15 @@ module Actions
35
35
  end
36
36
  end
37
37
  end
38
+ update_unauthenticated_repo_list(smart_proxy) if smart_proxy.has_feature?("Container_Gateway")
39
+ end
40
+
41
+ def update_unauthenticated_repo_list(smart_proxy)
42
+ unauthenticated_repo_list =
43
+ ::Katello::SmartProxyHelper.new(smart_proxy).combined_repos_available_to_capsule.select do |repo|
44
+ repo.docker? && repo.environment.registry_unauthenticated_pull
45
+ end
46
+ smart_proxy.update_unauthenticated_repo_list(unauthenticated_repo_list.map(&:container_repository_name))
38
47
  end
39
48
 
40
49
  def repos_to_sync(smart_proxy, environment, content_view, repository, skip_metatadata_check = false)