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
@@ -16,7 +16,7 @@
16
16
 
17
17
  repositoriesNutupane = new Nutupane(Repository, params);
18
18
  $scope.controllerName = 'katello_repositories';
19
- repositoriesNutupane.masterOnly = true;
19
+ repositoriesNutupane.primaryOnly = true;
20
20
  repositoriesNutupane.setSearchKey('repositoriesSearch');
21
21
 
22
22
  $scope.table = repositoriesNutupane.table;
@@ -20,7 +20,7 @@
20
20
 
21
21
  nutupane = new Nutupane(PuppetModule, params);
22
22
  $scope.controllerName = 'katello_puppet_modules';
23
- nutupane.masterOnly = true;
23
+ nutupane.primaryOnly = true;
24
24
 
25
25
  $scope.table = nutupane.table;
26
26
  $scope.controllerName = 'katello_puppet_modules';
@@ -30,7 +30,7 @@ angular.module('Bastion.sync-plans').controller('SyncPlanDetailsInfoController',
30
30
  function updateSyncPlan(syncPlan) {
31
31
  var syncDate;
32
32
  if (syncPlan['sync_date']) {
33
- syncDate = new Date(syncPlan['sync_date'].replace(/\s/, 'T').replace(/\s/, ''));
33
+ syncDate = new Date(syncPlan['sync_date']);
34
34
  } else {
35
35
  syncDate = new Date();
36
36
  }
@@ -68,11 +68,12 @@ angular.module('Bastion.sync-plans').controller('SyncPlanDetailsInfoController',
68
68
  syncDate = new Date(syncPlan.syncDate),
69
69
  syncTime = new Date(syncPlan.syncTime || new Date());
70
70
 
71
+ var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric', second: 'numeric' };
72
+
71
73
  syncDate.setHours(syncTime.getHours());
72
74
  syncDate.setMinutes(syncTime.getMinutes());
73
75
  syncDate.setSeconds(0);
74
- syncPlan['sync_date'] = syncDate.toString();
75
-
76
+ syncPlan['sync_date'] = syncDate.toLocaleString("en-US", options);
76
77
  syncPlan.$update(function (response) {
77
78
  updateSyncPlan(syncPlan);
78
79
  deferred.resolve(response);
@@ -20,7 +20,7 @@
20
20
  <dt translate>Start Date</dt>
21
21
  <dd bst-edit-custom="syncPlan.syncDate"
22
22
  formatter="date"
23
- formatter-options="'medium'"
23
+ formatter-options="'MMMM d, y, hh:mm a'"
24
24
  on-save="save(syncPlan)"
25
25
  readonly="denied('edit_sync_plans', syncPlan)">
26
26
 
@@ -28,7 +28,7 @@ angular.module('Bastion.sync-plans').controller('SyncPlansController',
28
28
 
29
29
  nutupane = new Nutupane(SyncPlan, params);
30
30
  $scope.controllerName = 'katello_sync_plans';
31
- nutupane.masterOnly = true;
31
+ nutupane.primaryOnly = true;
32
32
 
33
33
  $scope.syncPlanTable = nutupane.table;
34
34
  $scope.removeRow = nutupane.removeRow;
@@ -76,7 +76,9 @@ module Katello
76
76
  # make sure the Katello plugin is initialized before `after_initialize`
77
77
  # hook so that the resumed Dynflow tasks can rely on everything ready.
78
78
  initializer 'katello.register_plugin', :before => :finisher_hook do
79
+ ::Foreman::AccessControl::Permission.prepend ::Katello::Concerns::PermissionExtensions
79
80
  require 'katello/plugin'
81
+
80
82
  # extend builtin permissions from core with new actions
81
83
  require 'katello/permissions'
82
84
  end
@@ -71,7 +71,8 @@ module Katello
71
71
  'katello/api/v2/content_view_filter_rules' => [:index, :show],
72
72
  'katello/api/v2/content_view_histories' => [:index, :auto_complete_search],
73
73
  'katello/api/v2/content_view_puppet_modules' => [:index, :show, :auto_complete_search],
74
- 'katello/api/v2/content_view_versions' => [:index, :show, :auto_complete_search],
74
+ 'katello/api/v2/content_view_repositories' => [:show_all],
75
+ 'katello/api/v2/content_view_versions' => [:index, :show, :auto_complete_search, :export_histories],
75
76
  'katello/api/v2/content_view_components' => [:index, :show],
76
77
  'katello/api/v2/packages' => [:index],
77
78
  'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
@@ -293,23 +294,24 @@ module Katello
293
294
  :repo_compare_packages,
294
295
  :repo_compare_puppet_modules]
295
296
  },
296
- :resource_type => 'Katello::Product'
297
+ :resource_type => 'Katello::Product',
298
+ :finder_scope => :readable
297
299
  @plugin.permission :create_products,
298
300
  {
299
301
  'katello/api/v2/products' => [:create],
300
- 'katello/api/v2/repositories' => [:create],
301
302
  'katello/api/v2/package_groups' => [:create]
302
303
  },
303
304
  :resource_type => 'Katello::Product'
304
305
  @plugin.permission :edit_products,
305
306
  {
306
307
  'katello/api/v2/products' => [:update],
307
- 'katello/api/v2/repositories' => [:update, :remove_content, :import_uploads, :upload_content, :republish],
308
- 'katello/api/v2/products_bulk_actions' => [:update_sync_plans, :update_http_proxy],
308
+ 'katello/api/v2/repositories' => [:create, :update, :remove_content, :import_uploads, :upload_content, :republish, :verify_checksum],
309
+ 'katello/api/v2/products_bulk_actions' => [:update_sync_plans, :update_http_proxy, :verify_checksum_products],
309
310
  'katello/api/v2/content_uploads' => [:create, :update, :destroy],
310
311
  'katello/api/v2/organizations' => [:repo_discover, :cancel_repo_discover]
311
312
  },
312
- :resource_type => 'Katello::Product'
313
+ :resource_type => 'Katello::Product',
314
+ :finder_scope => :editable
313
315
  @plugin.permission :destroy_products,
314
316
  {
315
317
  'katello/api/v2/products' => [:destroy],
@@ -318,7 +320,8 @@ module Katello
318
320
  'katello/api/v2/repositories_bulk_actions' => [:destroy_repositories],
319
321
  'katello/api/v2/package_groups' => [:destroy]
320
322
  },
321
- :resource_type => 'Katello::Product'
323
+ :resource_type => 'Katello::Product',
324
+ :finder_scope => :deletable
322
325
  @plugin.permission :sync_products,
323
326
  {
324
327
  'katello/api/v2/products' => [:sync],
@@ -329,12 +332,14 @@ module Katello
329
332
  'katello/api/v2/sync_plans' => [:sync],
330
333
  'katello/sync_management' => [:index, :sync_status, :product_status, :sync, :destroy]
331
334
  },
332
- :resource_type => 'Katello::Product'
335
+ :resource_type => 'Katello::Product',
336
+ :finder_scope => :syncable
333
337
  @plugin.permission :export_products,
334
338
  {
335
339
  'katello/api/v2/repositories' => [:export]
336
340
  },
337
- :resource_type => 'Katello::Product'
341
+ :resource_type => 'Katello::Product',
342
+ :finder_scope => :exportable
338
343
  end
339
344
 
340
345
  def subscription_permissions # rubocop:disable Metrics/MethodLength
@@ -10,12 +10,12 @@ namespace :katello do
10
10
  end
11
11
 
12
12
  yum_distributor_directory = Dir.glob "#{OLD_DIRECTORY}/yum_distributor/*"
13
- master_directory = Dir.glob "#{OLD_DIRECTORY}/*"
14
- master_directory.delete "#{OLD_DIRECTORY}/yum_distributor"
13
+ primary_directory = Dir.glob "#{OLD_DIRECTORY}/*"
14
+ primary_directory.delete "#{OLD_DIRECTORY}/yum_distributor"
15
15
 
16
16
  republish = []
17
17
  delete = []
18
- master_directory.each do |directory|
18
+ primary_directory.each do |directory|
19
19
  repo_name = directory.split('/').last
20
20
  (current_cv_directories.include?(repo_name) && yum_distributor_directory.exclude?("#{OLD_DIRECTORY}/yum_distributor/#{repo_name}")) ? republish << repo_name : delete << directory
21
21
  end
@@ -1,14 +1,32 @@
1
1
  require File.expand_path("../engine", File.dirname(__FILE__))
2
+ require "#{Katello::Engine.root}/app/services/katello/pulp3/migration_switchover"
2
3
 
3
4
  namespace :katello do
4
5
  desc "Runs a Pulp 3 migration of pulp3 hrefs to pulp ids for supported content types."
5
6
  task :pulp3_content_switchover => :environment do
6
- ActiveRecord::Base.transaction do
7
- switchover_service = Katello::Pulp3::MigrationSwitchover.new(SmartProxy.pulp_master)
8
- switchover_service.run
7
+ begin
8
+ User.current = User.anonymous_admin
9
+
10
+ ActiveRecord::Base.transaction do
11
+ switchover_service = Katello::Pulp3::MigrationSwitchover.new(SmartProxy.pulp_primary)
12
+ switchover_service.run
13
+ end
14
+ rescue Katello::Pulp3::SwitchOverError => e
15
+ $stderr.print(e.message)
16
+ exit 1
17
+ end
18
+
19
+ task = ForemanTasks.sync_task(Actions::Pulp3::ContentGuard::RefreshAllDistributions, SmartProxy.pulp_primary)
20
+ until !task.pending? || task.paused?
21
+ sleep(10)
22
+ task = ForemanTasks::Task.find(task.id)
23
+ end
24
+ if task.result == 'error' || task.result == 'pending'
25
+ msg _("Content Guard Configuration failed, switchover aborted. Switchover continuing, but after completion, you will want to investigate: https://#{Socket.gethostname}/foreman_tasks/tasks/#{task.id}")
26
+ Rails.logger.error(msg)
27
+ $stderr.print(msg)
28
+ else
29
+ puts _("Content Switchover completed successfully")
9
30
  end
10
- rescue Katello::Pulp3::SwitchoverError => e
11
- $stderr.print(e.message)
12
- exit 1
13
31
  end
14
32
  end
@@ -3,7 +3,7 @@ load "#{Katello::Engine.root}/lib/katello/tasks/common.rake"
3
3
  namespace :katello do
4
4
  desc "Runs a Pulp 2 to 3 Content Migration for supported types. May be run multiple times. Use wait=false to immediately return with a task url."
5
5
  task :pulp3_migration => ["environment", "disable_dynflow", "check_ping"] do
6
- task = ForemanTasks.async_task(Actions::Pulp3::ContentMigration)
6
+ task = ForemanTasks.async_task(Actions::Pulp3::ContentMigration, SmartProxy.pulp_primary, reimport_all: ENV['reimport_all'])
7
7
 
8
8
  if ENV['wait'].nil? || ::Foreman::Cast.to_bool(ENV['wait'])
9
9
  until !task.pending? || task.paused?
@@ -11,7 +11,9 @@ namespace :katello do
11
11
  task = ForemanTasks::Task.find(task.id)
12
12
  end
13
13
 
14
- if task.result == 'error' || task.result == 'pending'
14
+ if task.result == 'warning' || task.result == 'pending'
15
+ msg = _("Migration failed, You will want to investigate: https://#{Socket.gethostname}/foreman_tasks/tasks/#{task.id}\n")
16
+ $stderr.print(msg)
15
17
  fail ForemanTasks::TaskError, task
16
18
  else
17
19
  puts _("Content Migration completed successfully")
@@ -4,10 +4,10 @@ namespace :katello do
4
4
  desc "Runs a post Pulp3 migration check for supported content types."
5
5
  task :pulp3_post_migration_check => :environment do
6
6
  User.current = User.anonymous_admin
7
- repository_types = Katello::Pulp3::Migration::REPOSITORY_TYPES
7
+ repository_types = Katello::Pulp3::Migration.repository_types_for_migration
8
8
 
9
9
  # Take care of repository deletions
10
- ForemanTasks.sync_task(Actions::Pulp3::OrphanCleanup::DeleteOrphanedMigratedRepositories, SmartProxy.pulp_master)
10
+ ForemanTasks.sync_task(Actions::Pulp3::OrphanCleanup::DeleteOrphanedMigratedRepositories, SmartProxy.pulp_primary)
11
11
 
12
12
  repository_types.each do |type|
13
13
  # check version
@@ -25,7 +25,7 @@ namespace :katello do
25
25
 
26
26
  Katello::RepositoryTypeManager.repository_types.each_value do |repo_type|
27
27
  indexable_types = repo_type.content_types_to_index
28
- if SmartProxy.pulp_master.pulp3_repository_type_support?(repo_type)
28
+ if SmartProxy.pulp_primary.pulp3_repository_type_support?(repo_type)
29
29
  puts "\e[33mIgnoring types: #{indexable_types&.map { |type| type.model_class.name }}\e[0m\n"
30
30
  else
31
31
  models += indexable_types&.map(&:model_class)
@@ -65,6 +65,10 @@ namespace :katello do
65
65
  handle_missing_repo(repo)
66
66
  end
67
67
  end
68
+
69
+ ::Katello::RootRepository.orphaned.each do |root_repo|
70
+ handle_missing_root_repo(root_repo)
71
+ end
68
72
  end
69
73
 
70
74
  desc "Correct missing pulp repositories for puppet environments. Specify CONTENT_VIEW=name and LIFECYCLE_ENVIRONMENT=name to narrow repositories. COMMIT=true to perform operation."
@@ -135,9 +139,14 @@ namespace :katello do
135
139
  end
136
140
 
137
141
  def repo_exists?(repo)
138
- Katello.pulp_server.extensions.repository.retrieve(repo.pulp_id)
142
+ if SmartProxy.pulp_primary!.pulp3_support?(repo)
143
+ backend_service = repo.backend_service(SmartProxy.pulp_primary!)
144
+ backend_service.api.repositories_api.read(backend_service.repository_reference.repository_href)
145
+ else
146
+ Katello.pulp_server.extensions.repository.retrieve(repo.pulp_id)
147
+ end
139
148
  true
140
- rescue RestClient::ResourceNotFound
149
+ rescue RestClient::ResourceNotFound, PulpRpmClient::ApiError
141
150
  false
142
151
  end
143
152
 
@@ -152,6 +161,10 @@ namespace :katello do
152
161
  end
153
162
  end
154
163
 
164
+ def handle_missing_root_repo(root_repo)
165
+ root_repo.destroy! if commit?
166
+ end
167
+
155
168
  def handle_missing_puppet_env(puppet_env)
156
169
  puts "Content View Puppet Environment #{puppet_env.id} Missing, Creating."
157
170
  ForemanTasks.sync_task(::Actions::Katello::ContentViewPuppetEnvironment::Create, puppet_env) if commit?
@@ -122,6 +122,7 @@ namespace :katello do
122
122
 
123
123
  if content_facet
124
124
  content_facet.host = provisioning_host
125
+ provisioning_host.content_facet = content_facet
125
126
  content_facet.save!
126
127
  content_facet.update_errata_status
127
128
  end
@@ -2,7 +2,7 @@ namespace :katello do
2
2
  namespace :upgrades do
3
3
  namespace '3.11' do
4
4
  def wait_on_task(task, time = 0.1)
5
- task = SmartProxy.pulp_master.pulp_api.resources.task.poll(task['task_id'])
5
+ task = SmartProxy.pulp_primary.pulp_api.resources.task.poll(task['task_id'])
6
6
  return if Actions::Pulp::AbstractAsyncTask::FINISHED_STATES.include?(task['state'])
7
7
  sleep time
8
8
  wait_on_task(task, time + 0.2)
@@ -13,9 +13,9 @@ namespace :katello do
13
13
  User.current = User.anonymous_admin
14
14
  Katello::Repository.puppet_type.each do |repo|
15
15
  puts "Refreshing repository #{repo.label} (#{repo.id})"
16
- install_dist = repo.backend_service(SmartProxy.pulp_master).backend_data['distributors'].find { |dist| dist['distributor_type_id'] == 'puppet_install_distributor' }
16
+ install_dist = repo.backend_service(SmartProxy.pulp_primary).backend_data['distributors'].find { |dist| dist['distributor_type_id'] == 'puppet_install_distributor' }
17
17
  if install_dist
18
- response = SmartProxy.pulp_master.pulp_api.resources.repository.delete_distributor(repo.pulp_id, install_dist['id'])
18
+ response = SmartProxy.pulp_primary.pulp_api.resources.repository.delete_distributor(repo.pulp_id, install_dist['id'])
19
19
  wait_on_task('task_id' => response['spawned_tasks'][0]['task_id'])
20
20
  end
21
21
  ForemanTasks.sync_task(::Actions::Pulp::Repository::Refresh, repo)
@@ -3,9 +3,9 @@ namespace :katello do
3
3
  namespace '3.12' do
4
4
  desc "removes the unused pulp2 notifier"
5
5
  task :remove_pulp2_notifier => %w(environment) do
6
- SmartProxy.pulp_master!.pulp_api.resources.event_notifier.list.each do |notifier|
6
+ SmartProxy.pulp_primary!.pulp_api.resources.event_notifier.list.each do |notifier|
7
7
  Rails.logger.info("Deleting notifier #{notifier['id']}")
8
- SmartProxy.pulp_master!.pulp_api.resources.event_notifier.delete(notifier['id'])
8
+ SmartProxy.pulp_primary!.pulp_api.resources.event_notifier.delete(notifier['id'])
9
9
  end
10
10
  end
11
11
  end
@@ -15,7 +15,7 @@ namespace :katello do
15
15
  :download_policy => ::Runcible::Models::YumImporter::DOWNLOAD_IMMEDIATE
16
16
  }
17
17
 
18
- SmartProxy.pulp_master.pulp_api.resources.repository.update_importer(repo.pulp_id, importer[:id], config) if (importer && importer[:id])
18
+ SmartProxy.pulp_primary.pulp_api.resources.repository.update_importer(repo.pulp_id, importer[:id], config) if (importer && importer[:id])
19
19
  end
20
20
  end
21
21
 
@@ -26,7 +26,7 @@ namespace :katello do
26
26
  repo.update_attribute(:saved_checksum_type, nil)
27
27
 
28
28
  if repo.find_distributor[:config]&.delete(:checksum_type)
29
- SmartProxy.pulp_master.pulp_api.resources.repository.update_distributor(
29
+ SmartProxy.pulp_primary.pulp_api.resources.repository.update_distributor(
30
30
  repo.pulp_id, repo.find_distributor[:id], repo.find_distributor[:config])
31
31
  end
32
32
  # rubocop:disable Lint/SuppressedException
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "3.17.0.rc1".freeze
2
+ VERSION = "3.17.0.rc2".freeze
3
3
  end
@@ -1,70 +1,70 @@
1
1
  # Autogenerated!
2
- _("Action with sub plans")
3
- _("Import facts")
4
- _("Import Puppet classes")
5
- _("Abstract async task")
6
- _("Create")
7
- _("Delete Activation Key")
8
- _("Update")
9
- _("Generate host applicability")
10
- _("Bulk generate applicability for hosts")
11
- _("Generate repository applicability")
12
- _("Synchronize smart proxy")
13
- _("Sync capsule")
14
- _("Delete")
2
+ _("Index module streams")
3
+ _("Index package groups")
4
+ _("Upload into")
5
+ _("Index content")
6
+ _("Fetch pxe files")
7
+ _("Discover")
15
8
  _("Errata mail")
16
- _("Incremental Update of Content View Version(s) ")
17
- _("Promote")
18
- _("Promotion to Environment")
19
- _("Publish")
20
- _("Remove Versions and Associations")
21
- _("Remove from Environment")
22
- _("Remove Version")
23
- _("Export")
24
- _("Incremental Update")
25
- _("Republish Version Repositories")
26
- _("Delete Lifecycle Environment")
27
- _("Publish Lifecycle Environment Repositories")
9
+ _("Delete")
10
+ _("Delete Package Group")
11
+ _("Create")
12
+ _("Delete Product")
13
+ _("Reindex subscriptions")
14
+ _("Product Create")
15
+ _("Destroy")
16
+ _("Combined Profile Update")
17
+ _("Update release version for host")
18
+ _("Remove subscriptions")
19
+ _("Update Content Overrides")
20
+ _("Install package")
21
+ _("Update package")
22
+ _("Install package group")
23
+ _("Install Applicable Errata")
28
24
  _("Attach subscriptions")
25
+ _("Update")
29
26
  _("Auto attach subscriptions")
30
27
  _("Destroy Content Host")
31
- _("Install Applicable Errata")
32
28
  _("Install erratum")
33
29
  _("Hypervisors")
34
30
  _("Hypervisors update")
35
- _("Install package")
36
31
  _("Remove package")
37
- _("Update package")
38
- _("Install package group")
39
32
  _("Remove package group")
40
- _("Remove subscriptions")
41
- _("Update Content Overrides")
42
33
  _("Update for host")
43
- _("Update release version for host")
44
34
  _("Package Profile Update")
45
- _("Combined Profile Update")
46
- _("Destroy")
47
- _("Product Create")
48
- _("Delete Product")
49
- _("Reindex subscriptions")
50
- _("Delete Package Group")
51
- _("Discover")
52
- _("Fetch pxe files")
35
+ _("Abstract async task")
36
+ _("Update http proxy")
37
+ _("Export")
53
38
  _("Filtered index content")
54
- _("Upload into")
55
- _("Index content")
56
39
  _("Index errata")
57
- _("Index module streams")
58
- _("Index package groups")
59
40
  _("Instance update")
41
+ _("Import facts")
42
+ _("Import Puppet classes")
43
+ _("Action with sub plans")
60
44
  _("Remove Content")
61
45
  _("Synchronize")
62
46
  _("Update content urls")
63
47
  _("Update http proxy details")
64
- _("Disable")
65
- _("Enable")
66
48
  _("Update redhat repository")
67
49
  _("Upload errata into")
68
50
  _("Create Package Group")
51
+ _("Disable")
52
+ _("Enable")
69
53
  _("Run Sync Plan:")
70
- _("Update http proxy")
54
+ _("Publish Lifecycle Environment Repositories")
55
+ _("Delete Lifecycle Environment")
56
+ _("Incremental Update")
57
+ _("Republish Version Repositories")
58
+ _("Remove Version")
59
+ _("Remove from Environment")
60
+ _("Remove Versions and Associations")
61
+ _("Promotion to Environment")
62
+ _("Publish")
63
+ _("Promote")
64
+ _("Incremental Update of Content View Version(s) ")
65
+ _("Sync capsule")
66
+ _("Synchronize smart proxy")
67
+ _("Generate repository applicability")
68
+ _("Bulk generate applicability for hosts")
69
+ _("Generate host applicability")
70
+ _("Delete Activation Key")