katello 3.17.0.rc1 → 3.17.0.rc2

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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +5 -3
  3. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +1 -1
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -2
  5. data/app/controllers/katello/api/v2/api_controller.rb +1 -1
  6. data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
  7. data/app/controllers/katello/api/v2/content_uploads_controller.rb +5 -5
  8. data/app/controllers/katello/api/v2/content_view_repositories_controller.rb +47 -0
  9. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +50 -19
  10. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +1 -1
  11. data/app/controllers/katello/api/v2/host_tracer_controller.rb +0 -5
  12. data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +15 -0
  13. data/app/controllers/katello/api/v2/repositories_controller.rb +24 -14
  14. data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
  15. data/app/controllers/katello/concerns/api/v2/{associations_permission_check.rb → authorization.rb} +20 -2
  16. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +11 -5
  17. data/app/helpers/katello/content_view_helper.rb +1 -1
  18. data/app/lib/actions/candlepin/product/content_add.rb +1 -2
  19. data/app/lib/actions/katello/capsule_content/refresh_repos.rb +1 -1
  20. data/app/lib/actions/katello/capsule_content/sync.rb +2 -2
  21. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +17 -3
  22. data/app/lib/actions/katello/content_view/capsule_sync.rb +1 -1
  23. data/app/lib/actions/katello/content_view/destroy.rb +2 -2
  24. data/app/lib/actions/katello/content_view/incremental_updates.rb +1 -1
  25. data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -0
  26. data/app/lib/actions/katello/content_view/publish.rb +12 -7
  27. data/app/lib/actions/katello/content_view_puppet_environment/clone.rb +1 -1
  28. data/app/lib/actions/katello/content_view_puppet_environment/create.rb +2 -2
  29. data/app/lib/actions/katello/content_view_version/incremental_update.rb +4 -4
  30. data/app/lib/actions/katello/organization/manifest_delete.rb +1 -0
  31. data/app/lib/actions/katello/organization/manifest_import.rb +1 -0
  32. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -0
  33. data/app/lib/actions/katello/product/content_create.rb +3 -3
  34. data/app/lib/actions/katello/product/destroy.rb +25 -4
  35. data/app/lib/actions/katello/repository/clone_contents.rb +3 -3
  36. data/app/lib/actions/katello/repository/clone_to_environment.rb +2 -2
  37. data/app/lib/actions/katello/repository/clone_to_version.rb +1 -1
  38. data/app/lib/actions/katello/repository/create.rb +1 -1
  39. data/app/lib/actions/katello/repository/destroy.rb +10 -4
  40. data/app/lib/actions/katello/repository/export.rb +3 -3
  41. data/app/lib/actions/katello/repository/finish_upload.rb +2 -2
  42. data/app/lib/actions/katello/repository/import_upload.rb +3 -3
  43. data/app/lib/actions/katello/repository/metadata_generate.rb +1 -1
  44. data/app/lib/actions/katello/repository/multi_clone_contents.rb +6 -10
  45. data/app/lib/actions/katello/repository/purge_empty_content.rb +1 -1
  46. data/app/lib/actions/katello/repository/remove_content.rb +1 -1
  47. data/app/lib/actions/katello/repository/sync.rb +35 -25
  48. data/app/lib/actions/katello/repository/update.rb +30 -19
  49. data/app/lib/actions/katello/repository/update_http_proxy_details.rb +1 -1
  50. data/app/lib/actions/katello/repository/update_metadata_sync.rb +1 -1
  51. data/app/lib/actions/katello/repository/upload_files.rb +2 -2
  52. data/app/lib/actions/katello/repository/verify_checksum.rb +28 -0
  53. data/app/lib/actions/pulp/content_view_puppet_environment/copy_contents.rb +1 -1
  54. data/app/lib/actions/pulp/orchestration/orphan_cleanup/remove_orphans.rb +1 -1
  55. data/app/lib/actions/pulp/orchestration/repository/sync.rb +2 -1
  56. data/app/lib/actions/pulp/repository/copy_all_units.rb +1 -1
  57. data/app/lib/actions/pulp/repository/copy_units.rb +1 -1
  58. data/app/lib/actions/pulp/repository/create.rb +1 -1
  59. data/app/lib/actions/pulp/repository/destroy.rb +1 -1
  60. data/app/lib/actions/pulp/repository/remove_units.rb +2 -2
  61. data/app/lib/actions/pulp/repository/sync.rb +3 -2
  62. data/app/lib/actions/pulp3/capsule_content/sync.rb +3 -1
  63. data/app/lib/actions/pulp3/content_guard/refresh_all_distributions.rb +19 -0
  64. data/app/lib/actions/pulp3/content_migration.rb +3 -3
  65. data/app/lib/actions/pulp3/content_view_version/create_exporter.rb +20 -0
  66. data/app/lib/actions/pulp3/content_view_version/destroy_exporter.rb +16 -0
  67. data/app/lib/actions/pulp3/content_view_version/export.rb +19 -0
  68. data/app/lib/actions/pulp3/import_migration.rb +3 -3
  69. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +69 -0
  70. data/app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb +1 -2
  71. data/app/lib/actions/pulp3/orchestration/repository/create.rb +1 -1
  72. data/app/lib/actions/pulp3/orchestration/repository/sync.rb +3 -1
  73. data/app/lib/actions/pulp3/orchestration/repository/trigger_update_repo_cert_guard.rb +22 -0
  74. data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +1 -1
  75. data/app/lib/actions/pulp3/repository/copy_content.rb +0 -1
  76. data/app/lib/actions/pulp3/repository/multi_copy_units.rb +2 -2
  77. data/app/lib/actions/pulp3/repository/presenters/repair_presenter.rb +85 -0
  78. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +11 -5
  79. data/app/lib/actions/pulp3/repository/repair.rb +29 -0
  80. data/app/lib/actions/pulp3/repository/save_artifact.rb +1 -1
  81. data/app/lib/actions/pulp3/repository/save_distribution_references.rb +2 -2
  82. data/app/lib/actions/pulp3/repository/save_version.rb +20 -16
  83. data/app/lib/actions/pulp3/repository/save_versions.rb +1 -1
  84. data/app/lib/actions/pulp3/repository/sync.rb +1 -1
  85. data/app/lib/actions/pulp3/repository/update_cv_repository_cert_guard.rb +6 -2
  86. data/app/lib/actions/pulp3/repository/upload_file.rb +2 -2
  87. data/app/lib/katello/concerns/base_template_scope_extensions.rb +5 -3
  88. data/app/lib/katello/concerns/permission_extensions.rb +14 -0
  89. data/app/lib/katello/foreman.rb +1 -1
  90. data/app/lib/katello/resources/candlepin/product.rb +0 -11
  91. data/app/lib/katello/resources/registry.rb +3 -3
  92. data/app/models/katello/authorization/content_view_version_export_history.rb +11 -0
  93. data/app/models/katello/authorization/product.rb +4 -0
  94. data/app/models/katello/authorization/repository.rb +8 -0
  95. data/app/models/katello/concerns/content_facet_host_extensions.rb +2 -1
  96. data/app/models/katello/concerns/organization_extensions.rb +6 -1
  97. data/app/models/katello/concerns/pulp_database_unit.rb +2 -2
  98. data/app/models/katello/concerns/redhat_extensions.rb +4 -2
  99. data/app/models/katello/concerns/smart_proxy_extensions.rb +33 -16
  100. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +1 -1
  101. data/app/models/katello/content_view.rb +1 -1
  102. data/app/models/katello/content_view_package_filter.rb +1 -1
  103. data/app/models/katello/content_view_puppet_environment.rb +1 -1
  104. data/app/models/katello/content_view_version.rb +3 -1
  105. data/app/models/katello/content_view_version_export_history.rb +22 -0
  106. data/app/models/katello/docker_meta_tag.rb +1 -1
  107. data/app/models/katello/errata_status.rb +21 -12
  108. data/app/models/katello/erratum.rb +1 -1
  109. data/app/models/katello/glue/candlepin/owner.rb +4 -2
  110. data/app/models/katello/glue/pulp/repo.rb +3 -1
  111. data/app/models/katello/host/content_facet.rb +8 -0
  112. data/app/models/katello/kt_environment.rb +1 -1
  113. data/app/models/katello/package_group.rb +1 -1
  114. data/app/models/katello/ping.rb +8 -3
  115. data/app/models/katello/pulp3/content_guard.rb +1 -1
  116. data/app/models/katello/purpose_status.rb +2 -2
  117. data/app/models/katello/repository.rb +23 -15
  118. data/app/models/katello/rhsm_fact_parser.rb +1 -1
  119. data/app/models/katello/root_repository.rb +2 -15
  120. data/app/models/katello/sync_plan.rb +8 -0
  121. data/app/models/setting/content.rb +3 -1
  122. data/app/services/cert/certs.rb +10 -2
  123. data/app/services/katello/candlepin/event_handler.rb +1 -0
  124. data/app/services/katello/host_status_manager.rb +7 -0
  125. data/app/services/katello/pulp/content.rb +1 -1
  126. data/app/services/katello/pulp/repository.rb +7 -7
  127. data/app/services/katello/pulp/repository/deb.rb +2 -2
  128. data/app/services/katello/pulp/repository/docker.rb +5 -5
  129. data/app/services/katello/pulp/repository/file.rb +2 -2
  130. data/app/services/katello/pulp/repository/ostree.rb +2 -2
  131. data/app/services/katello/pulp/repository/puppet.rb +2 -2
  132. data/app/services/katello/pulp/repository/yum.rb +5 -6
  133. data/app/services/katello/pulp/smart_proxy_repository.rb +1 -1
  134. data/app/services/katello/pulp3/ansible_collection.rb +2 -2
  135. data/app/services/katello/pulp3/api/core.rb +16 -0
  136. data/app/services/katello/pulp3/content.rb +3 -3
  137. data/app/services/katello/pulp3/content_view_version/export.rb +71 -0
  138. data/app/services/katello/pulp3/distribution.rb +2 -2
  139. data/app/services/katello/pulp3/docker_blob.rb +2 -2
  140. data/app/services/katello/pulp3/docker_manifest.rb +2 -2
  141. data/app/services/katello/pulp3/docker_manifest_list.rb +2 -2
  142. data/app/services/katello/pulp3/docker_tag.rb +2 -2
  143. data/app/services/katello/pulp3/erratum.rb +2 -2
  144. data/app/services/katello/pulp3/file_unit.rb +2 -2
  145. data/app/services/katello/pulp3/migration.rb +139 -34
  146. data/app/services/katello/pulp3/migration_plan.rb +50 -14
  147. data/app/services/katello/pulp3/migration_switchover.rb +41 -9
  148. data/app/services/katello/pulp3/module_stream.rb +2 -2
  149. data/app/services/katello/pulp3/package_group.rb +2 -2
  150. data/app/services/katello/pulp3/repository.rb +9 -9
  151. data/app/services/katello/pulp3/repository/docker.rb +18 -10
  152. data/app/services/katello/pulp3/repository/yum.rb +25 -13
  153. data/app/services/katello/pulp3/repository_mirror.rb +2 -1
  154. data/app/services/katello/pulp3/rpm.rb +2 -2
  155. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +2 -2
  156. data/app/services/katello/pulp3/smart_proxy_repository.rb +1 -1
  157. data/app/services/katello/pulp3/srpm.rb +2 -2
  158. data/app/services/katello/pulp3/task_group.rb +1 -1
  159. data/app/services/katello/pulp3/yum_metadata_file.rb +2 -2
  160. data/app/services/katello/registration_manager.rb +9 -3
  161. data/app/services/katello/repository_type.rb +1 -1
  162. data/app/services/katello/smart_proxy_helper.rb +14 -17
  163. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +10 -2
  164. data/app/views/katello/api/v2/content_view_repositories/show_all.json.rabl +8 -0
  165. data/app/views/katello/api/v2/content_view_version_export_histories/index.json.rabl +7 -0
  166. data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +13 -0
  167. data/app/views/katello/api/v2/package_groups/show.json.rabl +1 -1
  168. data/app/views/katello/api/v2/packages/show.json.rabl +1 -1
  169. data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
  170. data/app/views/katello/api/v2/srpms/show.json.rabl +1 -1
  171. data/app/views/katello/api/v2/sync_plans/show.json.rabl +2 -1
  172. data/config/routes/api/rhsm.rb +1 -0
  173. data/config/routes/api/v2.rb +8 -1
  174. data/db/migrate/20200818040551_add_content_view_version_export_history.rb +13 -0
  175. data/db/migrate/20200818192230_update_system_purpose_status.rb +12 -0
  176. data/db/migrate/20200820145217_add_download_concurrency_to_katello_root_repositories.rb +5 -0
  177. data/db/migrate/20200910140340_remove_distribution_uuid.rb +5 -0
  178. data/db/migrate/20200914200906_remove_auto_enabled.rb +5 -0
  179. data/engines/bastion/app/assets/javascripts/bastion/bastion.js +1 -0
  180. data/engines/bastion/app/assets/javascripts/bastion/routing.module.js +1 -1
  181. data/engines/bastion/vendor/assets/javascripts/bastion/angular-ui-router/stateEvents.js +300 -0
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +1 -1
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +1 -1
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-associations.controller.js +1 -1
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +1 -1
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-products.controller.js +1 -1
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/content-credential-repositories.controller.js +1 -1
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +1 -1
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-host-collections-modal.controller.js +1 -1
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-module-streams-modal.controller.js +1 -1
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +1 -1
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-subscriptions-modal.controller.js +1 -1
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js +1 -1
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +1 -1
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +1 -1
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-installed.controller.js +1 -1
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +1 -1
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +1 -1
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +1 -1
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +1 -1
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +1 -1
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-host-collections.controller.js +1 -1
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-subscriptions.controller.js +1 -1
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +4 -2
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-host-collections.controller.js +1 -1
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-subscriptions.controller.js +1 -1
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -2
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +1 -1
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-available-content-views.controller.js +1 -1
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-composite-content-views-list.controller.js +1 -1
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-docker-repositories.controller.js +1 -1
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-available-ostree-repositories.controller.js +1 -1
  213. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-docker-repositories-list.controller.js +1 -1
  214. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-ostree-repositories-list.controller.js +1 -1
  215. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +1 -1
  216. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-errata-filter.controller.js +1 -1
  217. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-package-group-filter.controller.js +1 -1
  218. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-names.controller.js +1 -1
  219. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-versions.controller.js +1 -1
  220. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-modules.controller.js +1 -1
  221. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +1 -1
  222. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/debs.controller.js +1 -1
  223. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-content-views.controller.js +1 -1
  224. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/debs/details/deb-repositories.controller.js +1 -1
  225. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment-content.controller.js +1 -1
  226. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-repositories.controller.js +1 -1
  227. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-content-views.controller.js +1 -1
  228. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-repositories.controller.js +1 -1
  229. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/files.controller.js +1 -1
  230. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collections.controller.js +1 -1
  231. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +57 -12
  232. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +45 -8
  233. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +42 -5
  234. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +36 -0
  235. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +36 -0
  236. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +36 -0
  237. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +45 -8
  238. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +36 -0
  239. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +36 -0
  240. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +36 -0
  241. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +4 -4
  242. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +11 -2
  243. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/organization-selector.controller.js +5 -14
  244. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branch-repositories.controller.js +1 -1
  245. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/details/package-repositories.controller.js +1 -1
  246. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/packages.controller.js +1 -1
  247. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/product-bulk-action.factory.js +1 -0
  248. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-sync-plan-modal.controller.js +1 -1
  249. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +1 -1
  250. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +1 -1
  251. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +6 -0
  252. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +7 -1
  253. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +0 -9
  254. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +1 -1
  255. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +0 -11
  256. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +1 -0
  257. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +16 -1
  258. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/views/products.html +6 -0
  259. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module-content-views.controller.js +1 -1
  260. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module-repositories.controller.js +1 -1
  261. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-modules.controller.js +1 -1
  262. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +4 -3
  263. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +1 -1
  264. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plans.controller.js +1 -1
  265. data/lib/katello/engine.rb +2 -0
  266. data/lib/katello/permission_creator.rb +14 -9
  267. data/lib/katello/tasks/clean_published_repo_directories.rake +3 -3
  268. data/lib/katello/tasks/pulp3_content_switchover.rake +24 -6
  269. data/lib/katello/tasks/pulp3_migration.rake +4 -2
  270. data/lib/katello/tasks/pulp3_post_migration_check.rake +2 -2
  271. data/lib/katello/tasks/reimport.rake +1 -1
  272. data/lib/katello/tasks/repository.rake +15 -2
  273. data/lib/katello/tasks/unify_hosts.rake +1 -0
  274. data/lib/katello/tasks/upgrades/3.11/update_puppet_repos.rake +3 -3
  275. data/lib/katello/tasks/upgrades/3.12/remove_pulp2_notifier.rake +2 -2
  276. data/lib/katello/tasks/upgrades/3.8/clear_checksum_type.rake +2 -2
  277. data/lib/katello/version.rb +1 -1
  278. data/locale/action_names.rb +47 -47
  279. data/locale/katello.pot +160 -160
  280. data/webpack/containers/Application/config.js +4 -4
  281. data/webpack/redux/actions/RedHatRepositories/helpers.js +1 -1
  282. data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +22 -32
  283. data/webpack/scenes/Subscriptions/Manifest/__tests__/SimpleContentAccess.test.js +0 -14
  284. data/webpack/scenes/Subscriptions/Manifest/index.js +2 -5
  285. data/webpack/scenes/Subscriptions/SubscriptionReducer.js +15 -6
  286. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +0 -1
  287. data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +3 -0
  288. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +24 -0
  289. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +114 -26
  290. metadata +67 -33
  291. data/app/lib/actions/candlepin/product/content_update_enablement.rb +0 -18
  292. data/app/lib/actions/katello/repository/content_update.rb +0 -41
  293. data/app/lib/actions/katello/repository/update_cv_repo_cert_guard.rb +0 -17
@@ -38,19 +38,19 @@ export const links = [
38
38
  },
39
39
  {
40
40
  path: 'module_streams',
41
- component: withHeader(ModuleStreams, { title: __('Module Streams') }),
41
+ component: WithOrganization(withHeader(ModuleStreams, { title: __('Module Streams') })),
42
42
  },
43
43
  {
44
44
  path: 'module_streams/:id([0-9]+)',
45
- component: withHeader(ModuleStreamDetails, { title: __('Module Stream Details') }),
45
+ component: WithOrganization(withHeader(ModuleStreamDetails, { title: __('Module Stream Details') })),
46
46
  },
47
47
  {
48
48
  path: 'ansible_collections',
49
- component: withHeader(AnsibleCollections, { title: __('Ansible Collections') }),
49
+ component: WithOrganization(withHeader(AnsibleCollections, { title: __('Ansible Collections') })),
50
50
  },
51
51
  {
52
52
  path: 'ansible_collections/:id([0-9]+)',
53
- component: withHeader(AnsibleCollectionDetails, { title: __('Ansible Collection Details') }),
53
+ component: WithOrganization(withHeader(AnsibleCollectionDetails, { title: __('Ansible Collection Details') })),
54
54
  },
55
55
  {
56
56
  path: 'labs/content_views',
@@ -35,7 +35,7 @@ const recommendedRepositoriesSatTools = [
35
35
  const recommendedRepositoriesMisc = [
36
36
  'rhel-server-rhscl-7-rpms',
37
37
  'rhel-7-server-satellite-capsule-6.8-rpms',
38
- 'rhel-7-server-ansible-2.8-rpms',
38
+ 'rhel-7-server-ansible-2.9-rpms',
39
39
  ];
40
40
 
41
41
  const recommendedRepositorySetLables = recommendedRepositoriesRHEL
@@ -21,28 +21,29 @@ class ManageManifestModal extends Component {
21
21
 
22
22
  this.state = {
23
23
  redhat_repository_url: null,
24
- hideModalAfterAction: true,
25
24
  };
26
25
  }
27
26
 
28
- componentWillMount() {
29
- if (this.props.taskInProgress && this.state.hideModalAfterAction) {
27
+ componentDidMount() {
28
+ this.props.loadManifestHistory();
29
+ }
30
+
31
+ componentDidUpdate(prevProps) {
32
+ if (!prevProps.taskInProgress && this.props.taskInProgress) {
30
33
  this.hideModal();
31
- this.setState({ hideModalAfterAction: false });
32
34
  }
33
- }
34
35
 
35
- componentDidMount() {
36
- this.loadData();
37
- this.props.loadOrganization();
38
- }
36
+ if (prevProps.taskInProgress && !this.props.taskInProgress) {
37
+ this.props.loadOrganization();
38
+ this.props.loadManifestHistory();
39
+ }
39
40
 
40
- loadData() {
41
- this.props.loadManifestHistory();
41
+ if (!prevProps.manifestActionStarted && this.props.manifestActionStarted) {
42
+ this.hideDeleteManifestModal();
43
+ }
42
44
  }
43
45
 
44
46
  hideModal = () => {
45
- if (this.props.deleteManifestModalIsOpen) this.hideDeleteManifestModal();
46
47
  this.props.setModalClosed({ id: MANAGE_MANIFEST_MODAL_ID });
47
48
  };
48
49
 
@@ -61,7 +62,6 @@ class ManageManifestModal extends Component {
61
62
  };
62
63
 
63
64
  uploadManifest = (fileList) => {
64
- this.hideModal();
65
65
  if (fileList.length > 0) {
66
66
  this.props.upload(fileList[0]);
67
67
  }
@@ -72,12 +72,11 @@ class ManageManifestModal extends Component {
72
72
  };
73
73
 
74
74
  deleteManifest = () => {
75
- this.hideModal();
76
75
  this.props.delete();
77
76
  };
78
77
 
79
78
  disabledTooltipText = () => {
80
- if (this.state.actionInProgress) {
79
+ if (this.props.taskInProgress) {
81
80
  return __('This is disabled because a manifest task is in progress');
82
81
  }
83
82
  return __('This is disabled because no manifest exists');
@@ -97,10 +96,10 @@ class ManageManifestModal extends Component {
97
96
  enableSimpleContentAccess,
98
97
  disableSimpleContentAccess,
99
98
  taskInProgress,
100
- manifestActionInProgress,
99
+ manifestActionStarted,
101
100
  } = this.props;
102
101
 
103
- const actionInProgress = (taskInProgress || manifestActionInProgress);
102
+ const actionInProgress = (taskInProgress || manifestActionStarted);
104
103
  const showRedHatProviderDetails = canEditOrganizations;
105
104
  const showSubscriptionManifest = (canImportManifest || canDeleteManifest);
106
105
  const showManifestTab = (showRedHatProviderDetails || showSubscriptionManifest);
@@ -247,20 +246,13 @@ class ManageManifestModal extends Component {
247
246
  {canDeleteManifest &&
248
247
  <React.Fragment>
249
248
  <TooltipButton
250
- renderedButton={(
251
- <Button
252
- disabled={!isManifestImported || actionInProgress}
253
- bsStyle="danger"
254
- onClick={this.showDeleteManifestModal}
255
- >
256
- {__('Delete')}
257
- </Button>
258
- )}
259
-
249
+ disabled={!isManifestImported || actionInProgress}
250
+ bsStyle="danger"
251
+ onClick={this.showDeleteManifestModal}
252
+ title={__('Delete')}
260
253
  tooltipId="delete-manifest-button-tooltip"
261
254
  tooltipText={this.disabledTooltipText()}
262
255
  tooltipPlacement="top"
263
-
264
256
  />
265
257
  </React.Fragment>
266
258
  }
@@ -341,8 +333,7 @@ ManageManifestModal.propTypes = {
341
333
  }).isRequired,
342
334
  setModalClosed: PropTypes.func.isRequired,
343
335
  setModalOpen: PropTypes.func.isRequired,
344
- deleteManifestModalIsOpen: PropTypes.bool,
345
- manifestActionInProgress: PropTypes.bool,
336
+ manifestActionStarted: PropTypes.bool,
346
337
  };
347
338
 
348
339
  ManageManifestModal.defaultProps = {
@@ -352,9 +343,8 @@ ManageManifestModal.defaultProps = {
352
343
  canDeleteManifest: false,
353
344
  isManifestImported: false,
354
345
  canEditOrganizations: false,
355
- deleteManifestModalIsOpen: false,
356
346
  simpleContentAccess: false,
357
- manifestActionInProgress: false,
347
+ manifestActionStarted: false,
358
348
  };
359
349
 
360
350
  export default ManageManifestModal;
@@ -17,7 +17,6 @@ const defaultProps = {
17
17
  canImportManifest: true,
18
18
  canDeleteManifest: true,
19
19
  canEditOrganizations: true,
20
- deleteManifestModalIsOpen: true,
21
20
  upload: noop,
22
21
  refresh: noop,
23
22
  delete: noop,
@@ -51,7 +50,6 @@ const initialState = {
51
50
  const enableSimpleContetAccessPath = api.getApiUrl('/organizations/1/upstream_subscriptions/simple_content_access/enable');
52
51
  const disableSimpleContetAccessPath = api.getApiUrl('/organizations/1/upstream_subscriptions/simple_content_access/disable');
53
52
  const manifestHistoryPath = api.getApiUrl('/organizations/1/subscriptions/manifest_history');
54
- const organizationPath = api.getApiUrl('/organizations/1');
55
53
 
56
54
  test('Enable Simple Content Access after toggle switch value to true', async (done) => {
57
55
  const { getByTestId } = renderWithRedux(<ManifestModal {...defaultProps} />, { initialState });
@@ -65,11 +63,6 @@ test('Enable Simple Content Access after toggle switch value to true', async (do
65
63
  .query(true)
66
64
  .reply(200, manifestHistorySuccessResponse);
67
65
 
68
- const scope = nockInstance
69
- .get(organizationPath)
70
- .query(true)
71
- .reply(200, 'Organization Success Response!');
72
-
73
66
  const toggleButton = getByTestId('switch');
74
67
 
75
68
  await patientlyWaitFor(() => { expect(toggleButton).toBeInTheDocument(); });
@@ -77,7 +70,6 @@ test('Enable Simple Content Access after toggle switch value to true', async (do
77
70
 
78
71
  fireEvent.click(toggleButton);
79
72
 
80
- assertNockRequest(scope);
81
73
  assertNockRequest(getscope);
82
74
  assertNockRequest(updatescope, done);
83
75
  });
@@ -94,11 +86,6 @@ test('Disable Simple Content Access after toggle switch value to false', async (
94
86
  .query(true)
95
87
  .reply(200, manifestHistorySuccessResponse);
96
88
 
97
- const scope = nockInstance
98
- .get(organizationPath)
99
- .query(true)
100
- .reply(200, 'Organization Success Response!');
101
-
102
89
  const { getByTestId } = renderWithRedux(<ManifestModal {...defaultProps} />, { initialState });
103
90
 
104
91
  const toggleButton = getByTestId('switch');
@@ -108,7 +95,6 @@ test('Disable Simple Content Access after toggle switch value to false', async (
108
95
 
109
96
  fireEvent.click(toggleButton);
110
97
 
111
- assertNockRequest(scope);
112
98
  assertNockRequest(getscope);
113
99
  assertNockRequest(updatescope, done);
114
100
  });
@@ -2,14 +2,12 @@ import { bindActionCreators } from 'redux';
2
2
 
3
3
  import { connect } from 'react-redux';
4
4
  import * as foremanModalActions from 'foremanReact/components/ForemanModal/ForemanModalActions';
5
- import { selectIsModalOpen } from 'foremanReact/components/ForemanModal/ForemanModalSelectors';
6
- import { DELETE_MANIFEST_MODAL_ID } from './ManifestConstants';
7
-
8
5
  import * as manifestActions from './ManifestActions';
9
6
  import * as organizationActions from '../../Organizations/OrganizationActions';
10
7
  import * as tasksActions from '../../Tasks/TaskActions';
11
8
  import history from './ManifestHistoryReducer';
12
9
  import { selectSimpleContentAccessEnabled, selectIsManifestImported } from '../../Organizations/OrganizationSelectors';
10
+ import { selectManifestActionStarted } from '../SubscriptionsSelectors';
13
11
 
14
12
  import ManifestModal from './ManageManifestModal';
15
13
 
@@ -22,8 +20,7 @@ const mapStateToProps = state => ({
22
20
  simpleContentAccess: selectSimpleContentAccessEnabled(state),
23
21
  isManifestImported: selectIsManifestImported(state),
24
22
  modalOpenState: state.foremanModals.ManageManifestModal,
25
- deleteManifestModalIsOpen: selectIsModalOpen(state, DELETE_MANIFEST_MODAL_ID),
26
- manifestActionInProgress: state.katello.subscriptions.manifestActionInProgress,
23
+ manifestActionStarted: selectManifestActionStarted(state),
27
24
  });
28
25
 
29
26
  // map action dispatchers to props
@@ -11,8 +11,12 @@ import {
11
11
  SUBSCRIPTIONS_QUANTITIES_FAILURE,
12
12
  SUBSCRIPTIONS_COLUMNS_REQUEST,
13
13
  UPDATE_SUBSCRIPTION_COLUMNS,
14
+ UPDATE_QUANTITY_REQUEST,
14
15
  UPDATE_QUANTITY_SUCCESS,
16
+ UPDATE_QUANTITY_FAILURE,
17
+ DELETE_SUBSCRIPTIONS_REQUEST,
15
18
  DELETE_SUBSCRIPTIONS_SUCCESS,
19
+ DELETE_SUBSCRIPTIONS_FAILURE,
16
20
  SUBSCRIPTIONS_UPDATE_SEARCH_QUERY,
17
21
  SUBSCRIPTIONS_OPEN_DELETE_MODAL,
18
22
  SUBSCRIPTIONS_CLOSE_DELETE_MODAL,
@@ -59,7 +63,7 @@ const initialState = Immutable({
59
63
  tableColumns: [],
60
64
  selectedTableColumns: [],
61
65
  hasUpstreamConnection: false,
62
- manifestActionInProgress: false,
66
+ manifestActionStarted: false,
63
67
  });
64
68
 
65
69
  export default (state = initialState, action) => {
@@ -154,41 +158,46 @@ export default (state = initialState, action) => {
154
158
  return state.merge({
155
159
  task: action.response,
156
160
  hasUpstreamConnection: false,
157
- manifestActionInProgress: false,
161
+ manifestActionStarted: false,
158
162
  });
159
163
 
160
- case UPDATE_QUANTITY_SUCCESS:
161
164
  case SUBSCRIPTIONS_POLL_TASK_SUCCESS:
162
165
  return state
163
166
  .set('task', action.response);
164
167
 
168
+ case UPDATE_QUANTITY_SUCCESS:
165
169
  case UPLOAD_MANIFEST_SUCCESS:
166
170
  case REFRESH_MANIFEST_SUCCESS:
167
171
  case ENABLE_SIMPLE_CONTENT_ACCESS_SUCCESS:
168
172
  case DISABLE_SIMPLE_CONTENT_ACCESS_SUCCESS:
169
173
  return state
170
174
  .set('task', action.response)
171
- .set('manifestActionInProgress', false);
175
+ .set('manifestActionStarted', false);
172
176
 
173
177
  case ENABLE_SIMPLE_CONTENT_ACCESS_REQUEST:
174
178
  case DISABLE_SIMPLE_CONTENT_ACCESS_REQUEST:
175
179
  case REFRESH_MANIFEST_REQUEST:
176
180
  case UPLOAD_MANIFEST_REQUEST:
177
181
  case DELETE_MANIFEST_REQUEST:
182
+ case UPDATE_QUANTITY_REQUEST:
183
+ case DELETE_SUBSCRIPTIONS_REQUEST:
178
184
  return state
179
- .set('manifestActionInProgress', true);
185
+ .set('manifestActionStarted', true);
180
186
 
181
187
  case ENABLE_SIMPLE_CONTENT_ACCESS_FAILURE:
182
188
  case DISABLE_SIMPLE_CONTENT_ACCESS_FAILURE:
183
189
  case REFRESH_MANIFEST_FAILURE:
184
190
  case UPLOAD_MANIFEST_FAILURE:
185
191
  case DELETE_MANIFEST_FAILURE:
192
+ case DELETE_SUBSCRIPTIONS_FAILURE:
193
+ case UPDATE_QUANTITY_FAILURE:
186
194
  return state
187
- .set('manifestActionInProgress', false);
195
+ .set('manifestActionStarted', false);
188
196
 
189
197
  case DELETE_SUBSCRIPTIONS_SUCCESS:
190
198
  return state
191
199
  .set('task', action.response)
200
+ .set('manifestActionStarted', false)
192
201
  .set('deleteButtonDisabled', true);
193
202
 
194
203
  case SUBSCRIPTIONS_RESET_TASKS:
@@ -261,7 +261,6 @@ class SubscriptionsPage extends Component {
261
261
  upload={this.props.uploadManifest}
262
262
  delete={this.props.deleteManifest}
263
263
  refresh={this.props.refreshManifest}
264
- key={task?.id}
265
264
  />
266
265
 
267
266
  <div id="subscriptions-table" className="modal-container">
@@ -24,5 +24,8 @@ export const selectIsTaskPending = (state) => {
24
24
  return false;
25
25
  };
26
26
 
27
+ export const selectManifestActionStarted = state =>
28
+ selectSubscriptionsState(state).manifestActionStarted;
29
+
27
30
  export const selectHasUpstreamConnection = state =>
28
31
  selectSubscriptionsState(state).hasUpstreamConnection;
@@ -10,8 +10,12 @@ import {
10
10
  SUBSCRIPTIONS_QUANTITIES_REQUEST,
11
11
  SUBSCRIPTIONS_QUANTITIES_SUCCESS,
12
12
  SUBSCRIPTIONS_QUANTITIES_FAILURE,
13
+ UPDATE_QUANTITY_REQUEST,
13
14
  UPDATE_QUANTITY_SUCCESS,
15
+ UPDATE_QUANTITY_FAILURE,
16
+ DELETE_SUBSCRIPTIONS_REQUEST,
14
17
  DELETE_SUBSCRIPTIONS_SUCCESS,
18
+ DELETE_SUBSCRIPTIONS_FAILURE,
15
19
  SUBSCRIPTIONS_UPDATE_SEARCH_QUERY,
16
20
  SUBSCRIPTIONS_OPEN_DELETE_MODAL,
17
21
  SUBSCRIPTIONS_CLOSE_DELETE_MODAL,
@@ -88,12 +92,32 @@ const fixtures = {
88
92
  response: mockTask,
89
93
  },
90
94
  },
95
+ 'should handle DELETE_SUBSCRIPTIONS_REQUEST': {
96
+ action: {
97
+ type: DELETE_SUBSCRIPTIONS_REQUEST,
98
+ },
99
+ },
100
+ 'should handle DELETE_SUBSCRIPTIONS_FAILURE': {
101
+ action: {
102
+ type: DELETE_SUBSCRIPTIONS_FAILURE,
103
+ },
104
+ },
105
+ 'should handle UPDATE_QUANTITY_REQUEST': {
106
+ action: {
107
+ type: UPDATE_QUANTITY_REQUEST,
108
+ },
109
+ },
91
110
  'should handle UPDATE_QUANTITY_SUCCESS': {
92
111
  action: {
93
112
  type: UPDATE_QUANTITY_SUCCESS,
94
113
  response: mockTask,
95
114
  },
96
115
  },
116
+ 'should handle UPDATE_QUANTITY_FAILURE': {
117
+ action: {
118
+ type: UPDATE_QUANTITY_FAILURE,
119
+ },
120
+ },
97
121
  'should handle SUBSCRIPTIONS_FAILURE': {
98
122
  action: {
99
123
  type: SUBSCRIPTIONS_FAILURE,
@@ -8,7 +8,7 @@ Object {
8
8
  "hasUpstreamConnection": false,
9
9
  "itemCount": 0,
10
10
  "loading": true,
11
- "manifestActionInProgress": false,
11
+ "manifestActionStarted": false,
12
12
  "pagination": Object {
13
13
  "page": 0,
14
14
  "perPage": 20,
@@ -27,6 +27,50 @@ Object {
27
27
  }
28
28
  `;
29
29
 
30
+ exports[`Subscriptions reducer should handle DELETE_SUBSCRIPTIONS_FAILURE 1`] = `
31
+ Object {
32
+ "availableQuantities": null,
33
+ "deleteButtonDisabled": true,
34
+ "deleteModalOpened": false,
35
+ "hasUpstreamConnection": false,
36
+ "itemCount": 0,
37
+ "loading": true,
38
+ "manifestActionStarted": false,
39
+ "pagination": Object {
40
+ "page": 0,
41
+ "perPage": 20,
42
+ },
43
+ "quantitiesLoading": false,
44
+ "results": Array [],
45
+ "searchQuery": "",
46
+ "selectedTableColumns": Array [],
47
+ "tableColumns": Array [],
48
+ "task": null,
49
+ }
50
+ `;
51
+
52
+ exports[`Subscriptions reducer should handle DELETE_SUBSCRIPTIONS_REQUEST 1`] = `
53
+ Object {
54
+ "availableQuantities": null,
55
+ "deleteButtonDisabled": true,
56
+ "deleteModalOpened": false,
57
+ "hasUpstreamConnection": false,
58
+ "itemCount": 0,
59
+ "loading": true,
60
+ "manifestActionStarted": true,
61
+ "pagination": Object {
62
+ "page": 0,
63
+ "perPage": 20,
64
+ },
65
+ "quantitiesLoading": false,
66
+ "results": Array [],
67
+ "searchQuery": "",
68
+ "selectedTableColumns": Array [],
69
+ "tableColumns": Array [],
70
+ "task": null,
71
+ }
72
+ `;
73
+
30
74
  exports[`Subscriptions reducer should handle DELETE_SUBSCRIPTIONS_SUCCESS 1`] = `
31
75
  Object {
32
76
  "availableQuantities": null,
@@ -35,7 +79,7 @@ Object {
35
79
  "hasUpstreamConnection": false,
36
80
  "itemCount": 0,
37
81
  "loading": true,
38
- "manifestActionInProgress": false,
82
+ "manifestActionStarted": false,
39
83
  "pagination": Object {
40
84
  "page": 0,
41
85
  "perPage": 20,
@@ -62,7 +106,7 @@ Object {
62
106
  "hasUpstreamConnection": false,
63
107
  "itemCount": 0,
64
108
  "loading": true,
65
- "manifestActionInProgress": false,
109
+ "manifestActionStarted": false,
66
110
  "pagination": Object {
67
111
  "page": 0,
68
112
  "perPage": 20,
@@ -84,7 +128,7 @@ Object {
84
128
  "hasUpstreamConnection": false,
85
129
  "itemCount": 0,
86
130
  "loading": true,
87
- "manifestActionInProgress": false,
131
+ "manifestActionStarted": false,
88
132
  "pagination": Object {
89
133
  "page": 0,
90
134
  "perPage": 20,
@@ -106,7 +150,7 @@ Object {
106
150
  "hasUpstreamConnection": false,
107
151
  "itemCount": 0,
108
152
  "loading": true,
109
- "manifestActionInProgress": false,
153
+ "manifestActionStarted": false,
110
154
  "pagination": Object {
111
155
  "page": 0,
112
156
  "perPage": 20,
@@ -133,7 +177,7 @@ Object {
133
177
  "hasUpstreamConnection": false,
134
178
  "itemCount": 0,
135
179
  "loading": true,
136
- "manifestActionInProgress": false,
180
+ "manifestActionStarted": false,
137
181
  "pagination": Object {
138
182
  "page": 0,
139
183
  "perPage": 20,
@@ -155,7 +199,7 @@ Object {
155
199
  "hasUpstreamConnection": false,
156
200
  "itemCount": 0,
157
201
  "loading": true,
158
- "manifestActionInProgress": false,
202
+ "manifestActionStarted": false,
159
203
  "pagination": Object {
160
204
  "page": 0,
161
205
  "perPage": 20,
@@ -181,7 +225,7 @@ Object {
181
225
  "hasUpstreamConnection": false,
182
226
  "itemCount": 0,
183
227
  "loading": true,
184
- "manifestActionInProgress": false,
228
+ "manifestActionStarted": false,
185
229
  "pagination": Object {
186
230
  "page": 0,
187
231
  "perPage": 20,
@@ -203,7 +247,7 @@ Object {
203
247
  "hasUpstreamConnection": false,
204
248
  "itemCount": 0,
205
249
  "loading": true,
206
- "manifestActionInProgress": false,
250
+ "manifestActionStarted": false,
207
251
  "pagination": Object {
208
252
  "page": 0,
209
253
  "perPage": 20,
@@ -225,7 +269,7 @@ Object {
225
269
  "hasUpstreamConnection": false,
226
270
  "itemCount": 0,
227
271
  "loading": false,
228
- "manifestActionInProgress": false,
272
+ "manifestActionStarted": false,
229
273
  "missingPermissions": undefined,
230
274
  "pagination": Object {
231
275
  "page": 0,
@@ -248,7 +292,7 @@ Object {
248
292
  "hasUpstreamConnection": false,
249
293
  "itemCount": 0,
250
294
  "loading": true,
251
- "manifestActionInProgress": false,
295
+ "manifestActionStarted": false,
252
296
  "pagination": Object {
253
297
  "page": 0,
254
298
  "perPage": 20,
@@ -270,7 +314,7 @@ Object {
270
314
  "hasUpstreamConnection": false,
271
315
  "itemCount": 0,
272
316
  "loading": true,
273
- "manifestActionInProgress": false,
317
+ "manifestActionStarted": false,
274
318
  "pagination": Object {
275
319
  "page": 0,
276
320
  "perPage": 20,
@@ -292,7 +336,7 @@ Object {
292
336
  "hasUpstreamConnection": false,
293
337
  "itemCount": 0,
294
338
  "loading": true,
295
- "manifestActionInProgress": false,
339
+ "manifestActionStarted": false,
296
340
  "pagination": Object {
297
341
  "page": 0,
298
342
  "perPage": 20,
@@ -319,7 +363,7 @@ Object {
319
363
  "hasUpstreamConnection": false,
320
364
  "itemCount": 0,
321
365
  "loading": true,
322
- "manifestActionInProgress": false,
366
+ "manifestActionStarted": false,
323
367
  "pagination": Object {
324
368
  "page": 0,
325
369
  "perPage": 20,
@@ -341,7 +385,7 @@ Object {
341
385
  "hasUpstreamConnection": false,
342
386
  "itemCount": 0,
343
387
  "loading": true,
344
- "manifestActionInProgress": false,
388
+ "manifestActionStarted": false,
345
389
  "pagination": Object {
346
390
  "page": 0,
347
391
  "perPage": 20,
@@ -363,7 +407,7 @@ Object {
363
407
  "hasUpstreamConnection": false,
364
408
  "itemCount": 0,
365
409
  "loading": true,
366
- "manifestActionInProgress": false,
410
+ "manifestActionStarted": false,
367
411
  "pagination": Object {
368
412
  "page": 0,
369
413
  "perPage": 20,
@@ -385,7 +429,7 @@ Object {
385
429
  "hasUpstreamConnection": false,
386
430
  "itemCount": 0,
387
431
  "loading": true,
388
- "manifestActionInProgress": false,
432
+ "manifestActionStarted": false,
389
433
  "pagination": Object {
390
434
  "page": 0,
391
435
  "perPage": 20,
@@ -407,7 +451,7 @@ Object {
407
451
  "hasUpstreamConnection": false,
408
452
  "itemCount": 0,
409
453
  "loading": true,
410
- "manifestActionInProgress": false,
454
+ "manifestActionStarted": false,
411
455
  "pagination": Object {
412
456
  "page": 0,
413
457
  "perPage": 20,
@@ -435,7 +479,7 @@ Object {
435
479
  "hasUpstreamConnection": false,
436
480
  "itemCount": 20,
437
481
  "loading": false,
438
- "manifestActionInProgress": false,
482
+ "manifestActionStarted": false,
439
483
  "pagination": Object {
440
484
  "page": 1,
441
485
  "perPage": 10,
@@ -459,7 +503,7 @@ Object {
459
503
  "hasUpstreamConnection": false,
460
504
  "itemCount": 0,
461
505
  "loading": true,
462
- "manifestActionInProgress": false,
506
+ "manifestActionStarted": false,
463
507
  "pagination": Object {
464
508
  "page": 0,
465
509
  "perPage": 20,
@@ -481,7 +525,7 @@ Object {
481
525
  "hasUpstreamConnection": false,
482
526
  "itemCount": 0,
483
527
  "loading": true,
484
- "manifestActionInProgress": false,
528
+ "manifestActionStarted": false,
485
529
  "pagination": Object {
486
530
  "page": 0,
487
531
  "perPage": 20,
@@ -508,7 +552,7 @@ Object {
508
552
  "hasUpstreamConnection": false,
509
553
  "itemCount": 0,
510
554
  "loading": true,
511
- "manifestActionInProgress": false,
555
+ "manifestActionStarted": false,
512
556
  "pagination": Object {
513
557
  "page": 0,
514
558
  "perPage": 20,
@@ -522,6 +566,50 @@ Object {
522
566
  }
523
567
  `;
524
568
 
569
+ exports[`Subscriptions reducer should handle UPDATE_QUANTITY_FAILURE 1`] = `
570
+ Object {
571
+ "availableQuantities": null,
572
+ "deleteButtonDisabled": true,
573
+ "deleteModalOpened": false,
574
+ "hasUpstreamConnection": false,
575
+ "itemCount": 0,
576
+ "loading": true,
577
+ "manifestActionStarted": false,
578
+ "pagination": Object {
579
+ "page": 0,
580
+ "perPage": 20,
581
+ },
582
+ "quantitiesLoading": false,
583
+ "results": Array [],
584
+ "searchQuery": "",
585
+ "selectedTableColumns": Array [],
586
+ "tableColumns": Array [],
587
+ "task": null,
588
+ }
589
+ `;
590
+
591
+ exports[`Subscriptions reducer should handle UPDATE_QUANTITY_REQUEST 1`] = `
592
+ Object {
593
+ "availableQuantities": null,
594
+ "deleteButtonDisabled": true,
595
+ "deleteModalOpened": false,
596
+ "hasUpstreamConnection": false,
597
+ "itemCount": 0,
598
+ "loading": true,
599
+ "manifestActionStarted": true,
600
+ "pagination": Object {
601
+ "page": 0,
602
+ "perPage": 20,
603
+ },
604
+ "quantitiesLoading": false,
605
+ "results": Array [],
606
+ "searchQuery": "",
607
+ "selectedTableColumns": Array [],
608
+ "tableColumns": Array [],
609
+ "task": null,
610
+ }
611
+ `;
612
+
525
613
  exports[`Subscriptions reducer should handle UPDATE_QUANTITY_SUCCESS 1`] = `
526
614
  Object {
527
615
  "availableQuantities": null,
@@ -530,7 +618,7 @@ Object {
530
618
  "hasUpstreamConnection": false,
531
619
  "itemCount": 0,
532
620
  "loading": true,
533
- "manifestActionInProgress": false,
621
+ "manifestActionStarted": false,
534
622
  "pagination": Object {
535
623
  "page": 0,
536
624
  "perPage": 20,
@@ -557,7 +645,7 @@ Object {
557
645
  "hasUpstreamConnection": false,
558
646
  "itemCount": 0,
559
647
  "loading": true,
560
- "manifestActionInProgress": false,
648
+ "manifestActionStarted": false,
561
649
  "pagination": Object {
562
650
  "page": 0,
563
651
  "perPage": 20,
@@ -582,7 +670,7 @@ Object {
582
670
  "hasUpstreamConnection": false,
583
671
  "itemCount": 0,
584
672
  "loading": true,
585
- "manifestActionInProgress": false,
673
+ "manifestActionStarted": false,
586
674
  "pagination": Object {
587
675
  "page": 0,
588
676
  "perPage": 20,
@@ -609,7 +697,7 @@ Object {
609
697
  "hasUpstreamConnection": false,
610
698
  "itemCount": 0,
611
699
  "loading": true,
612
- "manifestActionInProgress": false,
700
+ "manifestActionStarted": false,
613
701
  "pagination": Object {
614
702
  "page": 0,
615
703
  "perPage": 20,